1. 程式人生 > >Spring 學習(二十)——用基於 XML 配置檔案的方式來配置 AOP

Spring 學習(二十)——用基於 XML 配置檔案的方式來配置 AOP

除了使用 AspectJ 註解宣告切面, Spring 也支援在 Bean 配置檔案中宣告切面. 這種宣告是通過 aop schema 中的 XML 元素完成的.

正常情況下, 基於註解的宣告要優先於基於 XML 的宣告. 通過 AspectJ 註解, 切面可以與 AspectJ 相容, 而基於 XML 的配置則是 Spring 專有的. 由於 AspectJ 得到越來越多的 AOP 框架支援, 所以以註解風格編寫的切面將會有更多重用的機會.

 

基於 XML ---- 宣告切面

當使用 XML 宣告切面時, 需要在 <beans> 根元素中匯入 aop

Schema

Bean 配置檔案中, 所有的 Spring AOP 配置都必須定義在 <aop:config> 元素內部. 對於每個切面而言, 都要建立一個 <aop:aspect> 元素來為具體的切面實現引用後端 Bean 例項.

切面 Bean 必須有一個標示符, <aop:aspect> 元素引用

 

宣告切面的例項程式碼

 

 

基於 XML ---- 宣告切入點

切入點使用 <aop:pointcut> 元素宣告

切入點必須定義在 <aop:aspect

> 元素下, 或者直接定義在 <aop:config> 元素下.

定義在 <aop:aspect> 元素下: 只對當前切面有效

定義在 <aop:config> 元素下: 對所有切面都有效

基於 XML AOP 配置不允許在切入點表示式中用名稱引用其他切入點.

 

 

宣告切入點的示例程式碼

 

基於 XML ---- 宣告通知

aop Schema , 每種通知型別都對應一個特定的 XML 元素.

通知元素需要使用 <pointcut-ref>

來引用切入點, 或用 <pointcut> 直接嵌入切入點表示式.  method 屬性指定切面類中通知方法的名稱.

 

宣告通知示例程式碼

 

宣告引入