国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 詳解在Spring中如何使用AspectJ來實現(xiàn)AOP

詳解在Spring中如何使用AspectJ來實現(xiàn)AOP

2021-05-12 15:08deniro Java教程

這篇文章主要介紹了詳解在Spring中如何使用AspectJ來實現(xiàn)AOP,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

1 開發(fā)環(huán)境要求

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

引入 aspectj 相關(guān)類庫:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<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//標(biāo)識切面

?
1
2
3
4
5
6
7
8
9
public class prerentaspect {
 /**
  * 增強邏輯
  */
 @before("execution(* rent(..))")//定義切點與增強類型
 public void beforerent() {
  system.out.println("開始執(zhí)行租賃動作");
 }
}

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

@before("execution(* rent(..))") 中的 @before 表示增強類型是前置增強,它的內(nèi)容是 @aspectj 切點表達(dá)式,這里表示的是在目標(biāo)類的 rent() 方法上織入增強, rent() 可以包含任意入?yún)⒑腿我獾姆祷刂怠?/p>

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

單元測試:

?
1
2
3
4
5
6
7
8
9
10
11
12
aspectjproxyfactory factory = new aspectjproxyfactory();
 
//設(shè)置目標(biāo)類
factory.settarget(new user());
 
//添加切面類
factory.addaspect(prerentaspect.class);
 
user proxy = factory.getproxy();
string userid = "001";
proxy.rent(userid);
proxy.back(userid);

輸出結(jié)果:

--開始執(zhí)行租賃動作--
user:租賃【充電寶】
user:歸還【充電寶】

3 配置方式

?
1
2
3
4
5
6
7
8
9
<!-- 目標(biāo)類-->
<bean id="user" class="net.deniro.spring4.aspectj.user"/>
 
<!-- 切面類-->
<bean class="net.deniro.spring4.aspectj.prerentaspect"/>
 
<!-- 自動創(chuàng)建代理-->
<bean
  class="org.springframework.aop.aspectj.annotation.annotationawareaspectjautoproxycreator"/>

單元測試:

?
1
2
3
4
5
applicationcontext context = new classpathxmlapplicationcontext(spring.xml");
user user = (user) context.getbean("user");
string userid = "001";
user.rent(userid);
user.back(userid);

輸出結(jié)果與編程方式完全相同。

也可以基于 schema 的 aop 命名空間進(jìn)行配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?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 驅(qū)動器 -->
 <aop:aspectj-autoproxy/>
 
 <!-- 目標(biāo)類-->
 <bean id="user" class="net.deniro.spring4.aspectj.user"/>
 
 
 <!-- 切面類-->
 <bean class="net.deniro.spring4.aspectj.prerentaspect"/>
</beans>

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

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

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.jianshu.com/p/abf28c0a15b0

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 在线a电影| 日韩在线观看一区 | 亚洲性人人天天夜夜摸 | 91视频免费 | 四虎影| 欧美成人免费在线视频 | 久久精品欧美 | 欧美日本韩国一区二区三区 | av片在线看 | 久久久久久国产精品免费免费狐狸 | 日本三级中国三级99人妇网站 | 日本一区二区视频在线播放 | 99精品一区二区 | 色播视频网站 | 精品国产精品三级精品av网址 | 久久国产精品一区二区 | 久久精品影视 | 欧美激情一区二区三级高清视频 | 成人国产 | 9l蝌蚪porny中文自拍 | 日韩欧美视频一区二区 | 性色av一二三杏吧传媒 | 黄色三级网站 | www.97超碰.com | 日本一区二区不卡在线观看 | 免费观看视频毛片 | 狠狠干狠狠干 | 久久精品国产99国产精品 | 亚洲品质自拍视频网站 | 国产在线观看91一区二区三区 | av在线播放网站 | 亚洲aⅴ天堂av在线电影软件 | 亚洲国产成人av好男人在线观看 | 国产高清精品一区二区三区 | 99久久综合精品五月天 | 九九香蕉视频 | 国内精品视频在线观看 | 日韩国产在线 | 欧美日韩三级在线 | 成人国产免费视频 | 久久精品99视频 |