Spring Aop:Spring本身原生的Aop,只能用一個詞來形容:難用。 你須要實現大量的接口,繼承大量的類,因此spring aop一度被千夫所指。這於他的無侵入,低耦合徹底衝突。不過Spring對開源的優秀框架,組建向來是採用兼容,併入的態度。因此,後來的Spring 就提供了Aspectj支持,也就是咱們後來所說的基於純POJO的Aop。spring
spring Aop採用的動態織入,而Aspectj是靜態織入。靜態織入:指在編譯時期就織入,即:編譯出來的class文件,字節碼就已經被織入了。動態織入又分靜動兩種,靜則指織入過程只在第一次調用時執行;動則指根據代碼動態運行的中間狀態來決定如何操做,每次調用Target的時候都執行。有不清楚的同窗,能夠本身補下基礎的代理知識。性能優化
(1)加入jar包:下載aspectj-1.8.9.jar並解壓,將lib文件夾中的jar包加入項目;框架
其實只須要加入三個包:aspectjrt.jar,aspectjweaver.jar(lib文件夾中包含)以及aopalliance.jar(另外下載)模塊化
(2)beans.xml中添加支持aspectj的代碼: <aop:aspectj-autoproxy />性能
(3)編寫一個Aspectj的實現類並加上註解@Aspect,並在裏面使用Aspectj的功能特性。優化
乾淨的模塊化橫切關注點(也就是說單純,基本上無侵入),如錯誤檢查和處理,同步,上下文敏感的行爲,性能優化,監控和記錄,調試支持,多目標的協議。spa