成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

spring項目中切面及AOP的使用方法

瀏覽:3日期:2023-07-06 08:25:17
使用AOP的原因(AOP簡介)

我們知道,spring兩大核心,IOC(控制反轉)和AOP(切面),那為什么要使用AOP,AOP是什么呢,嚴格來說,AOP是一種編程規范,是一種編程思想,并非spring創造,AOP可以幫助我們在一定程度上從冗余的通用的業務邏輯中解脫出來,最明顯的,比如每個接口的請求,都要記錄日志,那這個操作如果每個地方都寫,就會很繁瑣,當然,記錄日志并不是唯一的用法

spring的AOP只能基于IOC來管理,它只能作用于spring容器的bean

并且,spring的AOP為的是解決企業開發中出現最普遍的方法織入,并不是為了像AspectJ那樣,成為一個完全的AOP使用解決方案

AOP的使用

開啟AOP支持

要使用AOP,首先要開啟AOP的支持

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>

啟動類添加 @EnableAspectJAutoProxy 注解

編寫切面類與測試方法

@Aspect@Componentpublic class MyAop { }

@RestControllerpublic class OneController { @GetMapping('/doCheck') public String doCheck (int age) {System.out.println('doCheck');if (age > 1) {throw new MyException(ExceptionEnu.SUCCESS);} else { throw new MyException(ExceptionEnu.FAILD);} } }

記得切面類交給spring管理哦~ @Component

編寫切面方法

@Before

這個注解的用法呢,就是說,在執行你要執行的東西之前,執行加了這個注解的方法

比如

@Before(value = 'execution (* own.study.web.OneController.*(..))') public void doAop( ) {System.out.println('before aop'); }

也就是說,如果我要調用 OneController 的方法,在調用到之前,會執行這個 doAop 方法

讓我們來測試一下

spring項目中切面及AOP的使用方法

@After

這個注解的用法,就是說,當你執行完你的方法之后,真的返回給調用方之前,執行加了這個注解的方法

比如

@After(value = 'execution (* own.study.web.OneController.*(..))') public void doAfter() {System.out.println('after aop'); }

讓我們來測試一下

spring項目中切面及AOP的使用方法

@AfterThrowing

見名知意,在發生異常后,執行加了此注解的方法

注意我上面寫的測試方法了嗎?我拋出了自定義的異常

讓我們測試一下

spring項目中切面及AOP的使用方法

@AfterReturning

這個注解的用法也是看名字就能猜到,執行完后,執行此方法

但是!這個執行完,指的是正常執行完,不拋出異常的那種,不信?我們來試試

spring項目中切面及AOP的使用方法

@Around

這個是最為強大的一個注解,環繞通知,方法執行前和執行后都會執行加了這個注解的方法

@Around(value = 'execution (* own.study.web.OneController.*(..))') public Object doAround (ProceedingJoinPoint point) throws Throwable {Gson gson = new Gson();System.out.println('進入AOP --->' + System.currentTimeMillis());System.out.println('方法名 = ' + point.getSignature().toShortString()); Object result = point.proceed(); System.out.println('響應參數為 = ' + gson.toJson(result));System.out.println('AOP完事了 --->' + System.currentTimeMillis());return result; }

@RestControllerpublic class OneController { @GetMapping('/doCheck') public Object doCheck (int age) throws InterruptedException {System.out.println('這個是controller的方法 --->' + System.currentTimeMillis());Thread.sleep(2000l);System.out.println('doCheck');return new MyRsp('1', 'success'); } }

spring項目中切面及AOP的使用方法

但是,注意!這個環繞通知不是萬能的,不是一定好,大家按需要使用,比如一個場景,當你的方法拋出了異常,這個環繞通知就不會再繼續執行

我們來實驗一下

改寫controller的方法

@RestControllerpublic class OneController { @GetMapping('/doCheck') public Object doCheck (int age) throws InterruptedException {System.out.println('這個是controller的方法 --->' + System.currentTimeMillis());Thread.sleep(2000l);System.out.println('doCheck');throw new MyException('1', 'success'); // return new MyRsp('1', 'success'); } }

spring項目中切面及AOP的使用方法

看,AOP后續的沒有被執行

以上就是spring的切面,AOP的使用的詳細內容,更多關于spring的切面,AOP的使用的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产综合色视频| 日韩在线播放一区二区| 亚洲激情一二三区| 欧美极品一区| 久久久午夜精品理论片中文字幕| 国产一区二区精品久久| 日本道在线观看一区二区| 亚洲国产人成综合网站| 亚洲高清在线观看一区| 国产欧美精品一区aⅴ影院 | 国产成人夜色高潮福利影视| 色呦呦日韩精品| 亚洲色图色小说| 99re8在线精品视频免费播放| 日韩三级免费观看| 国产黄色精品视频| 制服丝袜日韩国产| 精品一区二区影视| 在线免费观看日本欧美| 亚洲成人三级小说| 国产精品日本欧美一区二区三区| 最新不卡av在线| 欧美午夜免费影院| 国产精品网站在线| 午夜日韩视频| 国产欧美综合在线观看第十页| www.久久久久久久久| 日韩一级片网址| 国产精品乡下勾搭老头1| 777xxx欧美| 国产激情偷乱视频一区二区三区| 91精品国产综合久久久久| 国产精品一区二区无线| 91麻豆精品国产综合久久久久久| 狠狠色狠狠色综合系列| 欧美日韩一区中文字幕| 捆绑调教美女网站视频一区| 欧美性极品少妇| 久久精品99国产精品| 91.com在线观看| 国产一区欧美日韩| 884aa四虎影成人精品一区| 精品一区二区三区视频在线观看| 欧美日韩精品三区| 国产真实乱对白精彩久久| 91精品国产一区二区| 国产福利精品导航| 日韩免费一区二区| 91丝袜美女网| 国产精品第一页第二页第三页| 在线成人欧美| 一区二区三区不卡在线观看| 久久精品九九| 久久99热这里只有精品| 日韩欧美国产精品| 欧美日韩一区二区高清| 国产精品国产三级国产aⅴ原创 | 欧美麻豆精品久久久久久| 麻豆精品蜜桃视频网站| 欧美精品久久天天躁| 国产一区在线视频| 欧美一区二区不卡视频| 大桥未久av一区二区三区中文| 日韩欧美一二三四区| 成人三级伦理片| 久久久www成人免费无遮挡大片| 色综合欧美在线视频区| 国产精品天干天干在线综合| 尤物网精品视频| 亚洲精品久久7777| 免费在线观看一区二区| 日本欧美一区二区| 在线不卡免费欧美| 99精品视频中文字幕| 国产精品伦理一区二区| 国产农村妇女精品一区二区| 三级在线观看一区二区| 欧洲日韩一区二区三区| 国产精品夜夜爽| 在线播放日韩导航| 夜夜亚洲天天久久| 欧美日韩一区二区在线观看视频| 国产成人综合在线观看| 日本一区二区三区在线不卡| 亚洲国产一区二区三区高清 | 久久国产福利国产秒拍| 久久久久久久久岛国免费| 亚洲视频日本| 日韩在线一区二区三区| 欧美一区中文字幕| 欧美特黄视频| 亚洲成人动漫av| 欧美片网站yy| 91在线丨porny丨国产| 亚洲视频香蕉人妖| 色偷偷成人一区二区三区91 | 国产一区二区高清不卡| 蜜臀av一区二区在线免费观看| 日韩午夜av电影| 一区二区亚洲精品| 麻豆精品精品国产自在97香蕉| 日韩免费高清视频| 亚洲伦伦在线| 乱中年女人伦av一区二区| 日韩精品专区在线影院重磅| 国内成+人亚洲| 天天影视网天天综合色在线播放| 欧美理论在线播放| 激情视频一区二区| 亚洲色图在线播放| 欧美国产综合| 蜜臀国产一区二区三区在线播放 | 精品亚洲成a人在线观看| 久久久久久免费毛片精品| 99视频一区| 国产精品1区二区.| 亚洲欧美日韩久久| 欧美日韩国产123区| 国产一区二区三区四区老人| 日本免费新一区视频| 久久久综合网站| 亚洲一区二区在| 不卡av在线免费观看| 中文字幕一区二| 欧美乱妇15p| 在线视频成人| 国产成人激情av| 日韩精品一级中文字幕精品视频免费观看 | 国产精品人人做人人爽人人添| 国产九九精品| 成人黄色软件下载| 亚洲1区2区3区视频| 精品免费日韩av| 国产精品区二区三区日本| 成人美女视频在线观看18| 亚洲伊人色欲综合网| 精品久久免费看| 蜜桃久久av| 欧美日韩一区在线观看视频| 精品一区二区日韩| 亚洲乱码一区二区三区在线观看| 日韩情涩欧美日韩视频| 可以看av的网站久久看| 欧美一区成人| 日韩av不卡一区二区| 国产精品亲子伦对白| 欧美浪妇xxxx高跟鞋交| 国产欧美一区二区三区另类精品| 丁香五精品蜜臀久久久久99网站| 亚洲综合小说图片| 久久精品免视看| 精品视频在线免费看| 西西裸体人体做爰大胆久久久| 国产综合网站| 不卡大黄网站免费看| 免费在线观看一区| 亚洲主播在线播放| 日本一区二区电影| 欧美一级久久久| 久久精品日产第一区二区| 欧美日韩国产在线一区| 国产成人鲁色资源国产91色综| 图片区小说区国产精品视频| 国产精品高潮呻吟| 日韩免费视频线观看| 欧美日韩视频一区二区| 国产精品一区在线播放| 欧美精品99| 国产超碰在线一区| 久久精品国产亚洲高清剧情介绍| 一区二区三区在线视频观看 | 亚洲精品1区| 91免费精品国自产拍在线不卡| 国产在线国偷精品免费看| 日韩精品一二区| 亚洲一区二区三区四区在线免费观看| 亚洲国产精品高清| 欧美精品一区二区三区四区| 欧美日韩成人综合| 欧美亚洲国产一区二区三区| 国产婷婷精品| 亚洲午夜黄色| 欧美精品午夜| 91亚洲大成网污www| 成人免费毛片片v| 国产经典欧美精品| 精品写真视频在线观看| 日本欧美大码aⅴ在线播放| 亚洲一级不卡视频| 亚洲桃色在线一区| 国产精品网友自拍| 欧美激情在线看| 国产人成亚洲第一网站在线播放 | 在线观看av一区二区| 久久精品综合一区| 一本色道久久综合亚洲精品不卡| 国产精品二区二区三区| 欧美成人一区二区在线| 欧美一区二区三区免费看| 不卡的av在线播放|