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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

精慕HU 2019-07-27 15:15:15
Spring@Transaction屬性在私有方法上工作嗎?如果我有對(duì)Springbean中的私有方法進(jìn)行注釋,注釋有效果嗎?如果@Transactional注釋在公共方法上,它工作并打開事務(wù)。public class Bean {   public void doStuff() {      doPrivateStuff();   }   @Transactional   private void doPrivateStuff() {   }}...Bean bean = (Bean)appContext.getBean("bean");bean.doStuff();
查看完整描述

3 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊


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

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

這有兩個(gè)含義:

  • 因?yàn)椴荒軓牧硪粋€(gè)bean調(diào)用私有方法(例外是反射),所以它們的

    @Transactional

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

@見彈簧參考:第9.6章代理機(jī)構(gòu)

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


查看完整回答
反對(duì) 回復(fù) 2019-07-28
?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊


默認(rèn)情況下,@Transactional屬性僅在對(duì)從applicationContext獲得的引用調(diào)用帶注釋的方法時(shí)才有效。

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

  }}

這將打開一個(gè)事務(wù):

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

這不會(huì):

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

Spring引用:使用@Transaction

注意:在代理模式下(這是默認(rèn)的),只有通過代理傳入的“外部”方法調(diào)用才會(huì)被截獲。這意味著“自調(diào)用”,即在目標(biāo)對(duì)象中調(diào)用目標(biāo)對(duì)象的其他方法的方法,即使被調(diào)用的方法被標(biāo)記為在運(yùn)行時(shí)也不會(huì)導(dǎo)致實(shí)際事務(wù)。@Transactional!

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




查看完整回答
反對(duì) 回復(fù) 2019-07-28
  • 3 回答
  • 0 關(guān)注
  • 887 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)