spring aop配置總結(jié)

引言

Spring aop支持@AspectJ注解的方式來(lái)配置切面,相比于手動(dòng)配置xml且手動(dòng)實(shí)現(xiàn)增強(qiáng)、切點(diǎn)的方式要方便很多。一般的配置流程如下:

1.配置xml

在Spring的xml配置文件里引入aop chema:

xmlns:aop="http://www.springframework.org/schema/aop"

<beans>里加上"<aop:aspectj-autoproxy>"

之后Spring容器會(huì)自動(dòng)為那些加了@Aspect注解的component創(chuàng)建代理,織入切面。事實(shí)上,Spring內(nèi)部依舊使用AnnotationAwareAspectJAutoProxyCreator完成了這部分工作,只是隱藏起來(lái)了。

如果需要使用CGlib針對(duì)類生成代理(jdk原生的代理只支持接口),在上述的配置項(xiàng)中增加屬性:

proxy-target-class = true即可。

2.新建相應(yīng)的切面類

只要加上@Component和@Aspect 注解,Spring容器會(huì)自動(dòng)找到

3.切點(diǎn)邏輯

在方法上加@Pointcut 注解,可識(shí)別成切點(diǎn),訪問(wèn)控制符(private、public protected)相應(yīng)的表示切點(diǎn)可以被引用到的范圍。

@Pointcut注解的value是AspectJ的切點(diǎn)語(yǔ)法,Spring支持大部分AspectJ語(yǔ)法。

4.增強(qiáng)邏輯

比較常用的有:@Before前置增強(qiáng),@AfterReturning后置增強(qiáng),@Around環(huán)繞增強(qiáng),@AfterThrowing異常增強(qiáng),@DeclareParants引介增強(qiáng),@After final增強(qiáng)。

通過(guò)JoinPoint可以獲取到連接點(diǎn)的相應(yīng)信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本章內(nèi)容: 面向切面編程的基本原理 通過(guò)POJO創(chuàng)建切面 使用@AspectJ注解 為AspectJ切面注入依賴 ...
    謝隨安閱讀 3,408評(píng)論 0 9
  • 因?yàn)楣ぷ餍枨?,自己去了解一下aop并做下的記錄,當(dāng)然大部分都是參考他人博客以及官方文檔。 目錄 [關(guān)于 AOP](...
    forip閱讀 2,356評(píng)論 1 20
  • **** AOP 面向切面編程 底層原理 代理?。?! 今天AOP課程1、 Spring 傳統(tǒng) AOP2、 Spri...
    luweicheng24閱讀 1,502評(píng)論 0 1
  • AOP實(shí)現(xiàn)可分為兩類(按AOP框架修改源代碼的時(shí)機(jī)): 靜態(tài)AOP實(shí)現(xiàn):AOP框架在編譯階段對(duì)程序進(jìn)行修改,即實(shí)現(xiàn)...
    數(shù)獨(dú)題閱讀 2,399評(píng)論 0 22
  • 2017年6月23日打卡 周四,雨幾乎下了一天一夜。陡然涼爽。 生活的真相,總是讓人措手不及。 直到昨天,子冉才知...
    沈曼柔閱讀 399評(píng)論 3 2

友情鏈接更多精彩內(nèi)容