spring使用aspect注解切面不起作用的排查過程及解決
今天做spring使用aspect注解demo,發(fā)現(xiàn)不起作用,問題排查如下:
1.程序正常啟動,說明jar包依賴沒有問題
2.debug程序不進(jìn)入切面,有可能是路徑問題,根據(jù)這個思路,果真是路徑問題,在切面配置類的使用@ComponentScan的路徑寫錯了。
掃描的路徑為:注解類、切面類及service的上一層目錄即可,假設(shè)項目的結(jié)構(gòu)如下:

則@ComponenScan('demo.com.nrt')即可
SpringBoot切面@aspect--- 注解在嵌套方法不生效的問題例如在service中方法如下
@PermissionAop @Override public List<PoiPermission> getList() {List<PoiPermission> list = this.list();return list; } @Override public void test(){this.getList();System.out.println(''); }
controller中調(diào)用test()方法,test方法中調(diào)用切面方法,切面不生效,無法進(jìn)入切面。
使用如下方式可解決該問題(啟動類上需要添加
@EnableAspectJAutoProxy(exposeProxy = true))
@PermissionAop @Override public List<PoiPermission> getList() {List<PoiPermission> list = this.list();return list; } @Override public void test(){IPoiPermissionService service = (IPoiPermissionService) AopContext.currentProxy();service.getList();System.out.println(''); }
其中IPoiPermissionService為該service類實現(xiàn)的接口。
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享2. vue項目登錄成功拿到令牌跳轉(zhuǎn)失敗401無登錄信息的解決3. php使用正則驗證密碼字段的復(fù)雜強(qiáng)度原理詳細(xì)講解 原創(chuàng)4. JSP+Servlet實現(xiàn)文件上傳到服務(wù)器功能5. uniapp自定義驗證碼輸入框并隱藏光標(biāo)6. 淺談由position屬性引申的css進(jìn)階討論7. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向8. CSS可以做的幾個令你嘆為觀止的實例分享9. vue前端RSA加密java后端解密的方法實現(xiàn)10. asp批量添加修改刪除操作示例代碼

網(wǎng)公網(wǎng)安備