日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring注解驅動之AOP功能測試

瀏覽:20日期:2023-09-10 17:12:59

前言

Spring的AOP指的是在程序運行期間動態的將某段代碼切入到指定方法指定位置進行運行的編程方式【動態代理】。

AOP功能測試

①導入AOP模塊

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>4.3.12.RELEASE</version> </dependency>

Spring注解驅動之AOP功能測試

②定義邏輯組件和切面類

邏輯組件

在業務邏輯運行的時候將日志進行打印(方法之前、方法運行結束、方法出現異常,xxx)

public class MathCalculator { public int div(int i,int j){ System.out.println('MathCalculator...div...'); return i/j; }}

切面類

切面類里面的方法需要動態感知MathCalculator.div運行到哪里然后執行;

/** * 切面類 必須告訴Spring哪個類是切面類(給切面類上加一個注解:@Aspect) * @Aspect: 告訴Spring當前類是一個切面類 * */@Aspectpublic class LogAspects { //抽取公共的切入點表達式 //1、本類引用 pointCut() //2、其他的切面引用 com.atneusoft.springboot.aop.LogAspects.pointCut() @Pointcut('execution(public int com.atneusoft.springboot.aop.MathCalculator.*(..))') public void pointCut(){}; //@Before在目標方法之前切入;切入點表達式(指定在哪個方法切入) //給切面類的目標方法標注何時何地運行(通知注解@Before@After@AfterReturning@AfterThrowing) //前置通知(@Before):在目標方法(div)運行之前運行 @Before('pointCut()') public void logStart(JoinPoint joinPoint){ Object[] args = joinPoint.getArgs(); System.out.println(''+joinPoint.getSignature().getName()+'運行。。。@Before:參數列表是:{'+Arrays.asList(args)+'}'); } //后置通知(@After):在目標方法(div)運行結束之后運行(無論方法正常結束還是異常結束) @After('com.atneusoft.springboot.aop.LogAspects.pointCut()') public void logEnd(JoinPoint joinPoint){ System.out.println(''+joinPoint.getSignature().getName()+'結束。。。@After'); } //JoinPoint一定要出現在參數表的第一位 //返回通知(@AfterReturning):在目標方法(div)正常返回之后運行 @AfterReturning(value='pointCut()',returning='result') public void logReturn(JoinPoint joinPoint,Object result){ System.out.println(''+joinPoint.getSignature().getName()+'正常返回。。。@AfterReturning:運行結果:{'+result+'}'); } //異常通知(@AfterThrowing):在目標方法(div)出現異常以后運行 @AfterThrowing(value='pointCut()',throwing='exception') public void logException(JoinPoint joinPoint,Exception exception){ System.out.println(''+joinPoint.getSignature().getName()+'異常。。。異常信息:{'+exception+'}'); }}

③將切面類和業務邏輯類(目標方法所在類)都加入到容器中,給配置類中加 @EnableAspectJAutoProxy 【開啟基于注解的aop模式,與配置文件的以下形式相同

<!-- 開啟基于注解版的切面功能 --><aop:aspectj-autoproxy></aop:aspectj-autoproxy>

@EnableAspectJAutoProxy@Configurationpublic class MainConfigOfAOP { //業務邏輯類加入容器中 @Bean public MathCalculator calculator(){ return new MathCalculator(); } //切面類加入到容器中 @Bean public LogAspects logAspects(){ return new LogAspects(); }}

@Test public void test01(){ AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfAOP.class);//1、不要自己創建對象// MathCalculator mathCalculator = new MathCalculator();// mathCalculator.div(1, 1); MathCalculator mathCalculator = applicationContext.getBean(MathCalculator.class);mathCalculator.div(1, 0);applicationContext.close(); }

07:49:45.185 [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Creating shared instance of singleton bean ’mathCalculator’div運行。。。@Before:參數列表是:{[1, 1]}MathCalculator...div...div結束。。。@Afterdiv正常返回。。。@AfterReturning:運行結果:{1}com.atneusoft.springboot.aop.MathCalculator@5965be2d

總結

三步:

1)、將業務邏輯組件和切面類都加入到容器中;告訴Spring哪個是切面類(@Aspect)

2)、在切面類上的每一個通知方法上標注通知注解,告訴Spring何時何地運行(切入點表達式)

3)、開啟基于注解的aop模式;@EnableAspectJAutoProxy

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品国产亚洲一区二区三区在线 | 麻豆国产精品一区二区三区| 狠狠爱www人成狠狠爱综合网| 亚洲精品影院在线观看| 国产一区调教| 视频在线观看91| 一区二区小说| 国产欧美久久一区二区三区| 丝瓜av网站精品一区二区| 日本蜜桃在线观看视频| 久久99久久久精品欧美| 91成人精品观看| 亚洲一区黄色| 激情五月综合网| av在线日韩| 国内精品亚洲| 国产精品magnet| 欧美在线首页| 免费人成网站在线观看欧美高清| 久久国产直播| 国产一区二区色噜噜| 久久激情五月婷婷| 日韩精品亚洲专区| 欧美在线影院| 91久久久精品国产| 好吊日精品视频| 亚洲黄色在线| 一本一道久久a久久精品蜜桃| 久久久久久久久99精品大| 亚洲三级欧美| 日韩在线高清| 久久久久亚洲精品中文字幕| 视频一区中文字幕精品| 一二三区精品| 日韩中文字幕一区二区高清99| 国产亚洲欧洲| 午夜在线精品偷拍| 在线视频亚洲欧美中文| 免费在线成人网| 日韩一区免费| 国产情侣久久| 日韩国产欧美一区二区三区| 日韩中文字幕一区二区高清99| 亚洲欧美在线综合| 日韩精品亚洲专区在线观看| 97成人在线| 麻豆传媒一区二区三区| 精品91福利视频| 成人欧美一区二区三区的电影| 日韩欧美另类一区二区| 黄毛片在线观看| 日本在线啊啊| 在线午夜精品| 涩涩涩久久久成人精品| 日本欧美一区二区| 欧美日本一区| 国产一区二区三区四区大秀| 久久久久久美女精品| 亚洲播播91| 欧美精品一二| 婷婷综合成人| 国产劲爆久久| 久久精品青草| 蜜桃伊人久久| 国产探花一区| 日韩一区欧美| 国产一区二区三区亚洲综合| 91综合网人人| 欧美成人一二区| 久久高清国产| 久久成人av| 亚洲网址在线观看| 欧美天堂视频| 国产综合色区在线观看| 岛国av免费在线观看| www在线观看黄色| 日产精品一区二区| 国产精品久久久久久久久久10秀 | 麻豆亚洲精品| 日韩不卡手机在线v区| 国产精品99久久免费观看| 精品国产99| 欧美日韩国产在线一区| 国产亚洲欧美日韩在线观看一区二区| 韩日一区二区| 蜜臀av在线播放一区二区三区| 日韩1区2区日韩1区2区| 波多视频一区| 日韩一区二区三区四区五区| 久久久精品国产**网站| 婷婷成人在线| 日本少妇精品亚洲第一区| 精品一区二区三区视频在线播放 | 国产精品网站在线看| 91精品国产成人观看| 国产精品女主播一区二区三区| 国产精品v日韩精品v欧美精品网站 | 久久精品免费看| 伊人久久成人| 久久精品国产久精国产爱| 亚洲色图国产| 国产精品xxx在线观看| 国产一区二区三区免费在线| 国产成人精品亚洲日本在线观看| 蜜臀久久99精品久久久久宅男| 久久中文在线| 亚洲伊人精品酒店| 国产精品97| 亚洲播播91| 国产精品亲子伦av一区二区三区| 蜜桃视频一区二区三区| 日韩电影免费网站| 美日韩一区二区三区| 欧美一区激情| 91精品国产自产观看在线| 免费视频最近日韩| 激情婷婷亚洲| 一区二区小说| 欧美高清不卡| 午夜日韩在线| 黄色日韩在线| 国产一区二区精品| 欧美在线综合| 视频一区视频二区中文| 亚洲一区日韩| 亚洲天堂日韩在线| 亚洲精品影院在线观看| 亚洲精选久久| 亚洲精品伦理| 欧美一级二区| 国产精品久久久久久模特 | 精品国产第一福利网站| 久久精品女人| 成午夜精品一区二区三区软件| 欧美激情另类| 亚洲成av人片一区二区密柚| 九九综合在线| 久久国产精品亚洲77777| 亚洲欧美日韩专区| 综合激情视频| 日本a口亚洲| 国产精品美女久久久久久不卡| 奇米777国产一区国产二区| 欧美一区久久| 激情久久一区二区| 日韩不卡免费高清视频| 亚洲第一区色| 欧美中文高清| 国模 一区 二区 三区| 狠狠爱成人网| 日本不卡一二三区黄网| 97精品国产一区二区三区| 亚洲欧美网站| 欧美日韩水蜜桃| 狂野欧美性猛交xxxx| 国产日韩专区| 九色porny丨国产首页在线| 亚洲一区二区三区四区电影| 首页欧美精品中文字幕| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩高清一区在线| 麻豆久久久久久久| 桃色一区二区| 亚洲三级国产| 成人午夜亚洲| 群体交乱之放荡娇妻一区二区| 日韩av在线播放网址| 久久xxx视频| 国产精品亚洲欧美| 天堂av在线| 爽好多水快深点欧美视频| 欧美午夜三级| 粉嫩av一区二区三区四区五区 | 亚洲综合激情在线| 美女精品一区二区| 五月天激情综合网| 日韩av二区在线播放| 国产一区二区三区网| 午夜视频精品| 国产精品调教| 黑丝一区二区| 美女久久99| 夜夜嗨一区二区| 久久一区欧美| 美女精品在线| 97精品国产一区二区三区| 伊人久久亚洲| 国产盗摄——sm在线视频| 首页国产欧美日韩丝袜| 精品久久97| 人人爽香蕉精品| 91偷拍一区二区三区精品| 亚洲一区激情| 粉嫩av一区二区三区四区五区 | 亚洲不卡av不卡一区二区| 精品一区二区三区免费看| 国产精品调教| 国产成人精品亚洲日本在线观看| 欧美精品一卡| 欧洲一区二区三区精品|