在controller中使用aop的問題主要在於如何讓controller能夠被檢測到。
controller和其他spring bean的區別在於:controller是由mvc定義並在web.xml中的dispatcher中定義的。
解決方法:
1、正確定義controller,(比較通用的做法,沒有特殊情況的話,大部分應用沒有這個問題)
listener中初始化(注意,任何controller都不應該在這裡出現),要包括,
在這裡,有沒有proxy-target-class="true" 沒有關係(具體含義參看下文)
b. 定義mvc的配置檔案,一般是 <>-servlet.xml,一般(也是推薦做法)使用auto scan來定義所有的controller.關鍵步驟來了:這個檔案也要加入, 一定要新增proxy-target-class="true"! 這是用於通知spring使用cglib而不是jdk的來生成**方法。
c. 另外乙個事項,controller需要使用@controller注釋,而不是繼承abstract controller。
d. 建議使用aspectj來完成aop
**:
spring 簡單配置aop 攔截
aspect public class demoaspect session中有狀態,可以呼叫目標方法 string users string session.getattribute serveruserid system.out.println aspect start system.out.p...
aop阻止方法執行 Aop實現攔截方法引數
對於spring框架來說,最重要的兩大特性就是aop 和ioc。以前一直都知道有這兩個東西,在平時做的專案中也常常會涉及到這兩塊,像spring的事務管理什麼的,在看了些原始碼後,才知道原來事務管理也是用的aop來實現的。對於ioc的話,平時接觸的就更多了,什麼autowired,resource各...
使用Unity進行AOP物件攔截
unity是一款知名的依賴注入容器,其支援通過自定義擴充套件來擴充功能。在unity軟體包內預設包含了乙個物件攔截 interception 擴充套件定義。本篇文章將介紹如何使用物件攔截功能來幫助你分離橫切關注點 separation of cross cutting concerns 物件攔截是一...