spring使用aspect注解切面不起作用的排查過程及解決
今天做spring使用aspect注解demo,發(fā)現(xiàn)不起作用,問題排查如下:
1.程序正常啟動,說明jar包依賴沒有問題
2.debug程序不進入切面,有可能是路徑問題,根據(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)用切面方法,切面不生效,無法進入切面。
使用如下方式可解決該問題(啟動類上需要添加
@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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于SpringBoot和Vue3的博客平臺發(fā)布、編輯、刪除文章功能實現(xiàn)
在上一個教程中,我們已經(jīng)實現(xiàn)了基于Spring?Boot和Vue3的用戶注冊與登錄功能。本教程將繼續(xù)引導(dǎo)您實現(xiàn)博客平臺的發(fā)布、編輯、刪除文章功能,需要的朋友參考一下2023-04-04mybatis水平分表實現(xiàn)動態(tài)表名的項目實例
本文主要介紹了mybatis水平分表實現(xiàn)動態(tài)表名的項目實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07玩轉(zhuǎn)spring boot MVC應(yīng)用(2)
玩轉(zhuǎn)spring boot,如何快速搭建一個MCV程序?這篇文章為大家詳細主要介紹了一個MCV程序的快速搭建過程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-01-01