久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Spring AOP(五)之Around增強(qiáng)處理

 狼圖騰1224 2018-02-06

@Around注解用于修飾Around增強(qiáng)處理,,Around增強(qiáng)處理是功能比較強(qiáng)大的增強(qiáng)處理,,它近似于Before增強(qiáng)處理和AfterReturing增強(qiáng)處理的總結(jié),Around增強(qiáng)處理既可在執(zhí)行目標(biāo)方法之前增強(qiáng)動(dòng)作,,也可在執(zhí)行目標(biāo)方法之后織入增強(qiáng)的執(zhí)行,。與Before增強(qiáng)處理、AfterReturning增強(qiáng)處理不同的是,,Around增強(qiáng)處理可以決定目標(biāo)方法在什么時(shí)候執(zhí)行,,如何執(zhí)行,甚至可以完全阻止目標(biāo)方法的執(zhí)行,。

當(dāng)定義一個(gè)Around增強(qiáng)處理方法時(shí),,該方法的第一個(gè)形參必須是ProceedJoinPoint類型(至少含有一個(gè)形參),在增強(qiáng)處理方法體內(nèi),,調(diào)用ProceedingJoinPoint參數(shù)的procedd()方法才會(huì)執(zhí)行目標(biāo)方法——這就是Around增強(qiáng)處理可以完全控制方法的執(zhí)行時(shí)機(jī),、如何執(zhí)行的關(guān)鍵;如果程序沒有調(diào)用ProceedingJoinPoint參數(shù)的proceed()方法,,則目標(biāo)方法不會(huì)被執(zhí)行,。下面定義一個(gè)Around增強(qiáng)處理。

  1. // 定義一個(gè)切面  
  2. @Aspect  
  3. public class TxAspect  
  4. {  
  5.     // 匹配com.owen.app.service.impl包下所有類的,、  
  6.     // 所有方法的執(zhí)行作為切入點(diǎn)  
  7.     @Around("execution(* com.owen.app.service.impl.*.*(..))")  
  8.     public Object processTx(ProceedingJoinPoint jp)  
  9.         throws java.lang.Throwable  
  10.     {  
  11.         System.out.println("執(zhí)行目標(biāo)方法之前,,模擬開始事務(wù)...");  
  12.         // 獲取目標(biāo)方法原始的調(diào)用參數(shù)  
  13.         Object[] args = jp.getArgs();  
  14.         if(args != null && args.length > 1)  
  15.         {  
  16.             // 修改目標(biāo)方法的第一個(gè)參數(shù)  
  17.             args[0] = "【增加的前綴】" + args[0];  
  18.         }  
  19.         // 以改變后的參數(shù)去執(zhí)行目標(biāo)方法,并保存目標(biāo)方法執(zhí)行后的返回值  
  20.         Object rvt = jp.proceed(args);  
  21.         System.out.println("執(zhí)行目標(biāo)方法之后,,模擬結(jié)束事務(wù)...");  
  22.         // 如果rvt的類型是Integer,,將rvt改為它的平方  
  23.         if(rvt != null && rvt instanceof Integer)  
  24.             rvt = (Integer)rvt * (Integer)rvt;  
  25.         return rvt;  
  26.     }  
  27. }  

該應(yīng)用的目標(biāo)Bean類,依然是HelloImpl.java和WorldImple.java,這兩個(gè)類與SpringAOP(一)Before增強(qiáng)處理中的類是一樣的,,這里就寫出,,讀者可以到前面章節(jié)參考。執(zhí)行主程序的結(jié)果如下,。

  1. [java] 信息:Loading XML bean definitions from class path resource…  
  2. [java]執(zhí)行目標(biāo)方法之前,,模擬開始事務(wù)…  
  3. [java]執(zhí)行Hello組件的foo()方法  
  4. [java]執(zhí)行目標(biāo)方法之后,,模擬結(jié)束事務(wù)…  
  5. [java]執(zhí)行目標(biāo)方法之前,模擬開始事務(wù)…  
  6. [java]執(zhí)行Hello組件的addUser添加用戶:【增加的前綴】owen  
  7. [java]執(zhí)行目標(biāo)方法之后,,模擬結(jié)束事務(wù)…  
  8. [java]addUser()的返回值為:400  
  9. [java]執(zhí)行目標(biāo)方法之前,,模擬開始事務(wù)…  
  10. [java]執(zhí)行World組件的bar()方法  
  11. [java]執(zhí)行目標(biāo)方法之后,模擬結(jié)束事務(wù)…  



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多