Spring學習總結7(AOP-基於XML)

Spring也提供了AOP的實現,切面就和常規的Java對象一樣被定義成application context中的一個bean。

對象的字段和方法提供了狀態和行爲信息。

XML文件則提供了切入點和通知信息。

 

聲明切面

 

在XML配置切面

 

Advisor

advisor就像一個小的自包含的切面,這個切面只有一個通知。

 

Spring AOP與AspectJ的選擇

Spring AOP比完全使用AspectJ更加簡單, 因爲它不需要引入AspectJ的編譯器/織入器到你開發和構建過程中。

如果你僅僅需要在Spring bean上通知執行操作,那麼Spring AOP是合適的選擇。

如果你需要通知domain對象或其它沒有在Spring容器中管理的任意對象,那麼你需要使用AspectJ。

如果你想通知除了簡單的方法執行之外的連接點(如:調用連接點、字段get或set的連接點等等), 也需要使用AspectJ。

 

基於XML還是註解

XML:

顯然如果你不是運行 在Java 5上,XML風格是最佳選擇。

XML風格對現有的Spring用戶來說更加習慣。它可以使用在任何Java級別中 (參考連接點表達式內部的命名連接點,雖然它也需要Java 5+) 並且通過純粹的POJO來支持。當使用AOP作爲工具來配置企業服務時XML會是一個很好的選擇。 (一個好的例子是當你認爲連接點表達式是你的配置中的一部分時,你可能想單獨更改它) 對於XML風格,從你的配置中可以清晰的表明在系統中存在那些切面。

註解:

@AspectJ風格支持其它的實例模型以及更豐富的連接點組合。它具有將切面保持爲一個模塊單元的優點。@AspectJ切面能被Spring AOP和AspectJ兩者都理解。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章