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)文章
詳解 Java Maximum redirects (100) exceeded
這篇文章主要介紹了詳解 Java Maximum redirects (100) exceeded的相關(guān)資料,需要的朋友可以參考下2017-05-05
SpringBoot + openFeign實現(xiàn)遠程接口調(diào)用的過程
現(xiàn)在的微服務(wù)項目不少都使用的是springboot+spring cloud構(gòu)建的項目,微服務(wù)之間的調(diào)用都離不開feign來進行遠程調(diào)用,這篇文章主要介紹了SpringBoot + openFeign實現(xiàn)遠程接口調(diào)用,需要的朋友可以參考下2022-11-11
Java基于字符流形式讀寫數(shù)據(jù)的兩種實現(xiàn)方法示例
這篇文章主要介紹了Java基于字符流形式讀寫數(shù)據(jù)的兩種實現(xiàn)方法示,結(jié)合實例形式分析了java逐個字符讀寫及使用緩沖區(qū)進行讀寫操作的具體實現(xiàn)技巧,需要的朋友可以參考下2018-01-01
spring webflux自定義netty 參數(shù)解析
這篇文章主要介紹了spring webflux自定義netty 參數(shù)解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

