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

spring使用aspect注解切面不起作用的排查過程及解決

瀏覽:3日期:2023-07-09 13:30:19

今天做spring使用aspect注解demo,發現不起作用,問題排查如下:

1.程序正常啟動,說明jar包依賴沒有問題

2.debug程序不進入切面,有可能是路徑問題,根據這個思路,果真是路徑問題,在切面配置類的使用@ComponentScan的路徑寫錯了。

掃描的路徑為:注解類、切面類及service的上一層目錄即可,假設項目的結構如下:

spring使用aspect注解切面不起作用的排查過程及解決

則@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中調用test()方法,test方法中調用切面方法,切面不生效,無法進入切面。

使用如下方式可解決該問題(啟動類上需要添加

@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類實現的接口。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Spring
相關文章:
国产综合久久一区二区三区