久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

java - spring AOP 不生效

瀏覽:101日期:2024-01-28 14:58:30

問題描述

寫了個切面, 如果切點定義聲明在Controller上面的方法,這對應的通知能夠執行, 如果不是Controller直接調用的則通知無法執行.

切面聲明:

@Aspect@Componentpublic class SessionAspect { @Pointcut('execution(* cn.test.service.impl.ShopServiceImpl.myShops(..))') private void myShops() { }@Pointcut('execution(* cn.test.service.impl.ShopServiceImpl.test(..))') private void test() { } @Before('myShops()') public void doBefore() {System.out.println('hello'); }@Before('test()') public void doBefore() {System.out.println('test'); }}

controller 的方法

@RequestMapping(value = '/my', method = RequestMethod.GET)public Object myShops(String userSid, ModelMap result) { return this.shopService.myShops(userSid);}

因為myShops在controller中直接調用, 通知能夠觸發執行, 打印出hello, 而test方法沒有在controller中顯示調用, 所有即便執行了test方法也不會通知也沒有被觸發執行.基于Spring MVC.

問題解答

回答1:

Spring AOP 只對 Bean 進行代理,如果你的實例不是從 Spring 獲取來的 Bean 而是自己實例出來的它是沒法進行代理的。

標簽: java
相關文章:
主站蜘蛛池模板: 稻城县| 德钦县| 津南区| 富宁县| 隆尧县| 凌海市| 景东| 义乌市| 三明市| 习水县| 游戏| 独山县| 潞西市| 大姚县| 上栗县| 扎赉特旗| 沂南县| 瓦房店市| 高尔夫| 河曲县| 嘉定区| 孝义市| 紫金县| 乌鲁木齐县| 麻江县| 克什克腾旗| 若羌县| 密云县| 怀柔区| 苏尼特右旗| 永兴县| 余庆县| 时尚| 新和县| 香港| 沙雅县| 西乡县| 榕江县| 临颍县| 永泰县| 调兵山市|