亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

詳解在Spring中如何使用AspectJ來實現AOP

2024-07-14 08:41:24
字體:
來源:轉載
供稿:網友

AspectJ 是通過注解來描述切點與增強的。

1 開發環境要求

因為要使用注解,所以請確保使用的 Java5.0 及以上版本。

引入 AspectJ 相關類庫:

<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version></dependency><dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjtools</artifactId> <version>${aspectj.version}</version></dependency><dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> <version>${aopalliance.version}</version></dependency>

2 編程方式

@Aspect//標識切面

public class PreRentAspect { /**  * 增強邏輯  */ @Before("execution(* rent(..))")//定義切點與增強類型 public void beforeRent() {  System.out.println("開始執行租賃動作"); }}

這個切面只是一個普通的 POJO,只不過加了 @Aspect 注解。

@Before("execution(* rent(..))") 中的 @Before 表示增強類型是前置增強,它的內容是 @AspectJ 切點表達式,這里表示的是在目標類的 rent() 方法上織入增強, rent() 可以包含任意入參和任意的返回值。

帶  @Aspect 的類,通過注解與代碼,將切點、增強類型和增強的橫切邏輯整合到了一起,是不是很方便呀O(∩_∩)O哈哈~

單元測試:

AspectJProxyFactory factory = new AspectJProxyFactory();//設置目標類factory.setTarget(new User());//添加切面類factory.addAspect(PreRentAspect.class);User proxy = factory.getProxy();String userId = "001";proxy.rent(userId);proxy.back(userId);

輸出結果:

--開始執行租賃動作--
User:租賃【充電寶】
User:歸還【充電寶】

3 配置方式

<!-- 目標類--><bean id="user" class="net.deniro.spring4.aspectj.User"/><!-- 切面類--><bean class="net.deniro.spring4.aspectj.PreRentAspect"/><!-- 自動創建代理--><bean  class="org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator"/>

單元測試:

ApplicationContext context = new ClassPathXmlApplicationContext(spring.xml");User user = (User) context.getBean("user");String userId = "001";user.rent(userId);user.back(userId);

輸出結果與編程方式完全相同。

也可以基于 Schema 的 aop 命名空間進行配置:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:aop="http://www.springframework.org/schema/aop"  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> <!--aspectj 驅動器 --> <aop:aspectj-autoproxy/> <!-- 目標類--> <bean id="user" class="net.deniro.spring4.aspectj.User"/> <!-- 切面類--> <bean class="net.deniro.spring4.aspectj.PreRentAspect"/></beans>

這樣的配置更加簡潔。其實在 <aop:aspectj-atuoproxy/> 內部已經采用了自動代理模式啦 O(∩_∩)O哈哈~

<aop:aspectj-atuoproxy/> 的 proxy-target-class 屬性,默認為 false ,表示使用 JDK 動態代理技術織入增強;此值為 true 則表示使用 CGLib 動態代理技術織入增強 。 如果目標類沒有聲明接口,那么即使  proxy-target-class 設置為 false,也會自動使用 CGLib 動態代理織入增強的喲O(∩_∩)O哈哈~

基于 Java5.0+ 的項目,建議使用 AspectJ 來配置切點與增強,因為這樣更簡潔、也更直接。

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


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本一欧美一欧美一亚洲视频| 4444欧美成人kkkk| 疯狂欧美牲乱大交777| 精品丝袜一区二区三区| 91精品视频在线免费观看| 欧美精品久久久久久久久| 精品国产成人av| 欧美精品在线免费| 色婷婷av一区二区三区在线观看| 欧美午夜宅男影院在线观看| 亚洲精品视频中文字幕| 色婷婷av一区二区三区在线观看| 精品国产乱码久久久久酒店| 久久久999精品免费| 亚洲高清免费观看高清完整版| 亚洲在线视频福利| 久久伊人精品天天| 欧美福利在线观看| 国产精品v片在线观看不卡| 国产精品一区二区三区毛片淫片| 91日本视频在线| 91手机视频在线观看| 国产成人免费av电影| 国产成+人+综合+亚洲欧美丁香花| 欧美日韩国产中文精品字幕自在自线| 精品国产福利在线| 91最新在线免费观看| 欧美中文字幕在线播放| 欧美中文字幕在线视频| 国内精品久久影院| 狠狠躁夜夜躁人人爽天天天天97| 日韩少妇与小伙激情| 一道本无吗dⅴd在线播放一区| 日本成人精品在线| 久久亚洲精品毛片| 57pao国产精品一区| 97精品欧美一区二区三区| 日韩av一区二区在线| 色久欧美在线视频观看| 亚洲人成网站色ww在线| 欧美亚洲成人精品| 欧洲永久精品大片ww免费漫画| 亚洲第一中文字幕在线观看| 动漫精品一区二区| 日韩av最新在线| 亚洲成人网在线| 亚洲嫩模很污视频| 综合欧美国产视频二区| 亚洲一区二区久久久久久久| 欧美肥婆姓交大片| 国产精品久久久久久久久久尿| 亚洲色图15p| 国产美女精品免费电影| 精品偷拍各种wc美女嘘嘘| 亚洲性视频网站| 中文国产亚洲喷潮| 国产精品白丝jk喷水视频一区| 国产精品美女呻吟| 日本欧美黄网站| 亚洲精品国产福利| 欧美亚洲成人免费| 91精品在线观| 欧美激情在线视频二区| 久久国产精品首页| 国产精品美女久久久免费| 亚洲色图美腿丝袜| 日本久久中文字幕| 97涩涩爰在线观看亚洲| 日韩av在线免费播放| 久久久国产成人精品| 亚洲自拍中文字幕| 久久久久久久国产精品视频| 精品国产乱码久久久久久婷婷| 成人xxxxx| 成人观看高清在线观看免费| 国产精品美女网站| 91精品久久久久久久久久久久久| 欧美刺激性大交免费视频| 久久精品国产欧美亚洲人人爽| 欧美性极品xxxx娇小| 国产成人av在线| 久久夜精品va视频免费观看| 91九色综合久久| 日韩av观看网址| 欧美夜福利tv在线| 国产日韩精品入口| 久久久久999| 久久久女人电视剧免费播放下载| 久久久噜噜噜久久久| 欧美精品在线免费观看| 精品免费在线视频| 欧美在线视频一区二区| 亚洲精品乱码久久久久久按摩观| 亚洲丁香婷深爱综合| 91a在线视频| 国产精品成人aaaaa网站| 深夜福利国产精品| 91精品国产乱码久久久久久久久| 夜夜嗨av一区二区三区四区| 久久久久久久久久久亚洲| 亚洲午夜av久久乱码| 精品视频在线播放色网色视频| 亚洲欧美日本精品| 国产亚洲欧美日韩一区二区| 欧美精品做受xxx性少妇| 国产精品jvid在线观看蜜臀| 欧美日韩国产限制| 久久精品视频播放| 91精品久久久久久久久| 欧美激情三级免费| 国产一区二区香蕉| 欧美精品videos性欧美| 日韩在线观看免费全| 国产精品久久综合av爱欲tv| 亚洲毛片在线观看| 国产裸体写真av一区二区| 久久久999国产| 不卡在线观看电视剧完整版| 亚洲精品欧美极品| 久久久亚洲欧洲日产国码aⅴ| 亚洲精品影视在线观看| 欧美大片在线免费观看| 亚洲免费av电影| 欧美成人在线影院| 国产丝袜视频一区| 欧美激情一区二区久久久| 久久精品成人一区二区三区| 日韩成人中文字幕在线观看| 国产亚洲欧洲高清一区| 精品国产网站地址| 亚洲天堂男人天堂女人天堂| 在线观看精品自拍私拍| 精品女同一区二区三区在线播放| 久久婷婷国产麻豆91天堂| 91精品国产自产在线老师啪| 国产精品黄页免费高清在线观看| 国产一区二区色| 欧美巨猛xxxx猛交黑人97人| 成人黄色av播放免费| 日韩中文字幕网| 久久久精品免费| 国产精品久久久久久久久免费看| 国产精品999| 97在线看免费观看视频在线观看| 色多多国产成人永久免费网站| 色综合色综合久久综合频道88| 久久久久久一区二区三区| 一区二区三区视频免费| 欧美精品www| 久久久久久一区二区三区| 国产精品一香蕉国产线看观看| 亚洲激情免费观看| 亚洲精品女av网站| 日韩精品高清在线| 久久av红桃一区二区小说| 欧美老女人bb| 亚洲欧美激情在线视频| 欧美在线视频导航| 青青久久av北条麻妃海外网| 国产精品老女人精品视频| 欧美激情一级欧美精品| 欧美激情视频播放| 国产精品免费一区| 国产精品www网站|