Spring AOP 在 XML檔案中實現 AspectJ 攔截
此篇文章將展示如何將上一篇文章中 Spring AOP 的 AspectJ 註解轉成基於XML的配置。對於那些不喜歡註釋的開發者,使用JDK1.4,則可以基於XML,而不使用 AspectJ。
和 @Before 功能等價的 AspectJ <aop:before>
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- @Before -->
<aop:pointcut id="pointCutBefore"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<aop:before method="before" pointcut-ref="pointCutBefore" />
</aop:aspect>
</aop:config>
和 @After 功能等價的 AspectJ <aop:after>
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- 所有 Advice 共用的切入點 -->
<aop:pointcut id="pointCut"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<!-- @After -->
<aop:after method="after" pointcut-ref="pointCut" />
</aop:aspect>
</aop:config>
和 @AfterReturning 功能等價的 <aop:after-returning>
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- 所有 Advice 共用的切入點 -->
<aop:pointcut id="pointCut"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<aop:after-returning method="afterReturning" returning="result" pointcut-ref="pointCut" />
</aop:aspect>
</aop:config>
和 @AfterThrowing 功能等價的 <aop:after-throwing>
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- 所有 Advice 共用的切入點 -->
<aop:pointcut id="pointCut"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<aop:after-throwing method="afterThrowing" throwing="error" pointcut-ref="pointCut" />
</aop:aspect>
</aop:config>
和 @Around 功能等價的 <aop:after-around>
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- 所有 Advice 共用的切入點 -->
<aop:pointcut id="pointCut"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<aop:around method="around" pointcut-ref="pointCut" />
</aop:aspect>
</aop:config>
所有通知的配置
<aop:config>
<aop:aspect id="aspectJD" ref="aspectJDemo">
<!-- 所有 Advice 共用的切入點 -->
<aop:pointcut id="pointCut"
expression="execution(* com.angelia.spring.service.ArticleServiceImpl.queryArticleById(..))" />
<!-- @Before -->
<aop:before method="before" pointcut-ref="pointCut" />
<!-- @After -->
<aop:after method="after" pointcut-ref="pointCut" />
<aop:after-returning method="afterReturning" returning="result" pointcut-ref="pointCut" />
<aop:after-throwing method="afterThrowing" throwing="error" pointcut-ref="pointCut" />
<aop:around method="around" pointcut-ref="pointCut" />
</aop:aspect>
</aop:config>
專案程式碼連結: https://pan.baidu.com/s/1gA5Rm4yvcpPJmDGUQX70lQ 密碼: 259a
相關文章
- 12_基於 AspectJ 配置檔案實現 AOP 操作
- 解決在.net8 WebAPI中 使用AbstractInterceptorAttribute 實現AOP 攔截器WebAPI
- spring mvc攔截器,spring攔截器以及AOP切面的區別和原始碼SpringMVC原始碼
- spring-AOP(二)實現原理之AspectJ註解方式Spring
- Spring AOP的AspectJ註解Spring
- Spring AOP基於xml的方式實現SpringXML
- Android AOP程式設計之雙擊攔截實現Android程式設計
- Spring AOP 日誌攔截器的事務管理Spring
- AspectJ 在 Spring 中的使用Spring
- 死磕Spring之AOP篇 - Spring AOP兩種代理物件的攔截處理Spring物件
- Spring系列之aAOP AOP是什麼?+xml方式實現aop+註解方式實現aopSpringXML
- AOP - AspectJ
- Spring Boot專案中如何定製攔截器Spring Boot
- SpringMVC中的攔截器Interceptor實現SpringMVC
- spring攔截器Spring
- Spring AOP與AspectJ的對比及應用Spring
- Spring AOP AspectJ 切面表示式高階用法Spring
- Spring MVC 中的攔截器的使用“攔截器基本配置” 和 “攔截器高階配置”SpringMVC
- Spring Boot中攔截器的使用Spring Boot
- AOP程式設計實戰-AspectJ程式設計
- Spring中基於XML方式的AOP操作SpringXML
- spring boot 攔截器Spring Boot
- java 語音用xml檔案實現圖形介面 xml檔案JavaXML
- 手寫Spring MVC框架(二) 實現訪問攔截功能SpringMVC框架
- .NET Core 3.x 基於AspectCore實現AOP,實現事務、快取攔截器快取
- Spring——AOP實現Spring
- 前端架構之vue+axios 前端實現登入攔截(路由攔截、http攔截)前端架構VueiOS路由HTTP
- Java實現的攔截器Java
- 面向切面的Spring(二) xml中定義aopSpringXML
- Spring Boot新增攔截器Spring Boot
- Spring AOP獲取攔截方法的引數名稱跟引數值Spring
- 手擼了一個HTTP框架:支援Sprng MVC、IOC、AOP,攔截器,配置檔案讀取...HTTP框架MVC
- Spring 原始碼(4)在Spring配置檔案中自定義標籤如何實現?Spring原始碼
- spring中的過濾器與攔截器Spring過濾器
- Spring AOP實現原理Spring
- 【Spring】AOP實現原理Spring
- Spring之AOP實現Spring
- Spring中通過Annotation來實現AOPSpring