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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring注解驅(qū)動(dòng)之AOP功能測(cè)試

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

前言

Spring的AOP指的是在程序運(yùn)行期間動(dòng)態(tài)的將某段代碼切入到指定方法指定位置進(jìn)行運(yùn)行的編程方式【動(dòng)態(tài)代理】。

AOP功能測(cè)試

①導(dǎo)入AOP模塊

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

Spring注解驅(qū)動(dòng)之AOP功能測(cè)試

②定義邏輯組件和切面類

邏輯組件

在業(yè)務(wù)邏輯運(yùn)行的時(shí)候?qū)⑷罩具M(jìn)行打印(方法之前、方法運(yùn)行結(jié)束、方法出現(xiàn)異常,xxx)

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

切面類

切面類里面的方法需要?jiǎng)討B(tài)感知MathCalculator.div運(yùn)行到哪里然后執(zhí)行;

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

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

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

@EnableAspectJAutoProxy@Configurationpublic class MainConfigOfAOP { //業(yè)務(wù)邏輯類加入容器中 @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、不要自己創(chuàng)建對(duì)象// 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運(yùn)行。。。@Before:參數(shù)列表是:{[1, 1]}MathCalculator...div...div結(jié)束。。。@Afterdiv正常返回。。。@AfterReturning:運(yùn)行結(jié)果:{1}com.atneusoft.springboot.aop.MathCalculator@5965be2d

總結(jié)

三步:

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

2)、在切面類上的每一個(gè)通知方法上標(biāo)注通知注解,告訴Spring何時(shí)何地運(yùn)行(切入點(diǎn)表達(dá)式)

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
狠狠干综合网| 国产日韩电影| 久久国产66| 亚洲综合不卡| 五月天久久网站| 91久久黄色| 午夜在线视频一区二区区别| 99久久婷婷| 九九综合九九| 在线亚洲成人| 丝袜美腿亚洲色图| 一区二区三区四区日韩| 亚洲专区视频| 91精品国产自产观看在线| 日本不卡一区二区| 欧美偷窥清纯综合图区| 国产精品永久| 国产videos久久| 久久久成人网| 久久亚洲国产| 亚洲欧美日韩综合国产aⅴ| 亚洲精品影视| 亚洲精品在线a| 久久精品国语| 亚洲精品乱码| 免费av一区二区三区四区| 亚洲午夜黄色| 亚洲三级国产| 国产精品观看| 国产资源在线观看入口av| 国产精品福利在线观看播放| 蜜桃av在线播放| 亚洲综合精品四区| 日本99精品| 97精品国产| 亚洲欧美日本视频在线观看| 欧美另类中文字幕| 日本aⅴ免费视频一区二区三区| 国产精品videossex久久发布 | 理论片午夜视频在线观看| 日本蜜桃在线观看视频| 激情久久久久久久| 免费一区二区视频| 国产日韩欧美中文在线| 欧美激情另类| 欧美在线综合| 久久久久伊人| 人人精品亚洲| 亚洲日韩中文字幕一区| 久久精品亚洲一区二区| 午夜影院欧美| 国产日韩中文在线中文字幕| 久久久人人人| 国产三级精品三级在线观看国产| 国产日韩电影| 亚洲精品日本| 日韩大片在线| 日本强好片久久久久久aaa| 天堂av在线| 亚洲综合小说| 亚洲日本网址| 欧美亚洲一区二区三区| 日韩理论片av| 青青草国产成人99久久| 久久美女性网| 国产免费av一区二区三区| 999精品色在线播放| 久久狠狠久久| 91久久久精品国产| 精品一级视频| 深夜福利亚洲| 色婷婷久久久| 久久福利在线| 亚洲制服欧美另类| 久久久精品久久久久久96| 国产精品xxxav免费视频| 美美哒免费高清在线观看视频一区二区| 久久精品国产精品亚洲毛片| 色综合视频一区二区三区日韩| 中文字幕系列一区| 国产精品一区二区三区av| 欧美日韩免费观看一区=区三区| 免费视频一区二区三区在线观看| 免费人成网站在线观看欧美高清| 久久三级视频| 精品免费在线| 欧美精品国产白浆久久久久| 日韩中文字幕亚洲一区二区va在线| 免费高潮视频95在线观看网站| 国产欧美一级| 日韩精品久久理论片| 鲁大师成人一区二区三区| 国产精品成久久久久| 国产麻豆一区二区三区| 日韩欧美精品一区二区综合视频| 不卡视频在线| 国产精品毛片一区二区在线看| 91精品尤物| 一区二区三区网站| 91精品福利| 日韩综合精品| 国产精品久久久久久久久久10秀 | 欧美在线首页| 久久午夜精品一区二区| 免费精品国产| 亚洲最新无码中文字幕久久| 欧美精品第一区| 日韩精品一区二区三区中文在线 | 久久精品99久久无色码中文字幕| 欧美国产一级| 国产成人免费精品| 精品网站999| 精品一区不卡| 欧美国产中文高清| 97久久亚洲| 中文字幕日韩高清在线| 免费欧美日韩| 免费一级片91| 一区二区电影| 亚洲精品观看| 日韩国产精品久久久| 婷婷综合成人| 欧美视频二区| 国产精品一区二区精品视频观看 | 日韩中文字幕无砖| 综合激情五月婷婷| 亚洲精品系列| 日本aⅴ亚洲精品中文乱码| 另类av一区二区| 亚洲性视频在线| 日本欧美一区| 国产免费播放一区二区| 国产精品美女在线观看直播| 国产精品久久乐| 精品久久在线| 日产精品一区| 亚洲激情av| 亚洲色图网站| 91成人在线精品视频| 久久成人福利| а√在线中文在线新版| 欧美日韩尤物久久| 亚洲欧洲一区二区天堂久久| 国产亚洲福利| 亚洲日本在线观看视频| 欧美亚洲tv| 91日韩欧美| 黄色精品网站| 日韩三区四区| 国产精品视频3p| 成人欧美一区二区三区的电影| 色88888久久久久久影院| 亚洲一级高清| 亚洲日产国产精品| 国产精品1区在线| 色在线视频观看| 亚洲一区观看| 911亚洲精品| 国产精品二区影院| 中文字幕高清在线播放| 欧美日韩视频| 亚洲久久视频| 精品欧美日韩精品| 免费毛片在线不卡| 日本不卡高清| 精品国产a一区二区三区v免费| 久久人人精品| 亚洲精品一级| 国产一区二区三区免费在线| 精品在线91| 欧美一级网址| 四虎4545www国产精品 | 激情久久五月| 综合视频一区| 国产一区丝袜| 日韩午夜一区| 国产乱码精品一区二区三区四区 | 丝瓜av网站精品一区二区| 国产亚洲人成a在线v网站| 吉吉日韩欧美| 亚洲区国产区| 亚洲最新无码中文字幕久久| 午夜在线精品| 动漫av一区| 伊人久久亚洲| 免费一二一二在线视频| 亚洲免费福利一区| 国产盗摄——sm在线视频| 免费看欧美美女黄的网站| 国产精品1区在线| 欧美日韩免费观看一区=区三区 | 日本免费一区二区视频| 人在线成免费视频| 天海翼亚洲一区二区三区| 成人片免费看| 日韩激情网站| 伊人精品一区| 欧美xxxx性| 久久国产88| 日韩欧美不卡|