Spring切面编程错误warning no match for this type name:com.xxx.xxx 解决方案

标签

Spring

AOP

bug

解决方案

发布时间:

本文字数:217 字 阅读完需:约 1 分钟

错误

@Before("execution(* com.LightseaBlue.Spring.*(..))")

分析

修改成下面这样,不过是多一个点的事,这就需要详细理解这里参数的含义
我们要找到Spring包下子包的类进行运行,而一个.代表了运行当前包下所有的方法
… 代表运行当前包和子包的方法

@Before("execution(* com.LightseaBlue.Spring..*(..))")

常见的切面表达式

1 所有公有方法的执行

execution(public * *(..))

2 所有以set开头的公有方法的执行

execution(* set*(..))

3 AccountService接口下的所有方法的执行

execution(* com.LightseaBlue.service.AccountService.*(..))

4 com.LightseaBlue.service包下的所有方法的执行

execution(* com.LightseaBlue.service.*.*(..))

5 com.LightseaBlue.service包及其子包下的所有方法的执行

execution(* com.LightseaBlue.service..*.*(..))

6 匹配com.LightseaBlue.service包下的所有类的所有方法(不含子包)

within(com.LightseaBlue.service.*)

7 com.LightseaBlue.service包和子包的所有方法

within(com.LightseaBlue.service..*)

8 匹配AccountService的代理类(不支持通配符)

this(com.LightseaBlue.service.AccountService)