第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring@Transaction屬性在私有方法上工作嗎?

Spring@Transaction屬性在私有方法上工作嗎?

牛魔王的故事 2019-07-25 14:14:38
Spring@Transaction屬性在私有方法上工作嗎?如果我有對Springbean中的私有方法進行注釋,注釋有效果嗎?如果@Transactional注釋在公共方法上,它工作并打開事務。public class Bean {   public void doStuff() {      doPrivateStuff();   }   @Transactional   private void doPrivateStuff() {   }}...Bean bean = (Bean)appContext.getBean("bean");bean.doStuff();
查看完整描述

4 回答

?
慕虎7371278

TA貢獻1802條經(jīng)驗 獲得超4個贊

Spring@Transaction屬性在私有方法上工作嗎?

如果我有對Springbean中的私有方法進行注釋,注釋有效果嗎?

如果@Transactional注釋在公共方法上,它工作并打開事務。

public class Bean {
  public void doStuff() {
     doPrivateStuff();
  }
  @Transactional
  private void doPrivateStuff() {

  }}...Bean bean = (Bean)appContext.getBean("bean");bean.doStuff();


查看完整回答
反對 回復 2019-07-26
?
慕婉清6462132

TA貢獻1804條經(jīng)驗 獲得超2個贊

問題不是私有的,也不是公開的,問題是:它是如何被調用的,以及您使用的是哪個AOP實現(xiàn)!

如果您使用(默認)Spring代理AOP,那么Spring提供的所有AOP功能(如@Transational)只有在調用通過代理時才會考慮。-通常情況下,如果從另一個豆子。

這有兩個含義:

  • 因為不能從另一個bean調用私有方法(例外是反射),所以它們的

    @Transactional

    注釋沒有被考慮在內。
  • 如果該方法是公共的,但它是從同一個bean調用的,那么它也不會被考慮(只有在使用了Spring代理AOP(默認)時,這個語句才是正確的)。

@見彈簧參考:第9.6章代理機構

您應該使用AspectJ模式,而不是Spring代理,這將解決問題。AspectJ事務方面甚至被編織成私有方法(Spring3.0檢查)。




查看完整回答
反對 回復 2019-07-26
?
炎炎設計

TA貢獻1808條經(jīng)驗 獲得超4個贊


默認情況下,@Transactional屬性僅在對從applicationContext獲得的引用調用帶注釋的方法時才有效。

public class Bean {
  public void doStuff() {
    doTransactionStuff();
  }
  @Transactional
  public void doTransactionStuff() {

  }}

這將打開一個事務:

Bean bean = (Bean)appContext.getBean("bean");bean.doTransactionStuff();

這不會:

Bean bean = (Bean)appContext.getBean("bean");bean.doStuff();

Spring引用:使用@Transaction

注意:在代理模式下(這是默認的),只有通過代理傳入的“外部”方法調用才會被截獲。這意味著“自調用”,即在目標對象中調用目標對象的其他方法的方法,即使被調用的方法被標記為在運行時也不會導致實際事務。@Transactional!

考慮使用AspectJ模式(請參見下面),如果您希望自己的調用也與事務一起包裝。在這種情況下,首先不會有代理;相反,目標類將被“編織”(即它的字節(jié)代碼將被修改),以便@Transactional任何方法上的運行時行為。



查看完整回答
反對 回復 2019-07-26
  • 4 回答
  • 0 關注
  • 438 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號