看到这些东西的第一眼是不是感觉很懵,我来介绍一下怎么看:
规则:
execution(modifiers-pattern?ret-type-pattern declaring-type-pattern?name-pattern(param-pattern) throws-pattern?)
问号:表示当前项可以有也可以没有,其中各项的语义如下表:
切点表达式介绍
modifiers-pattern | 方法的可见性,如public,protected; |
ret-type-pattern | 方法的返回值类型,如int,void等 |
declaring-type-pattern | 方法所在类的全路径名,如com.yanlong.aop |
name-pattern | 方法名类型,如com.spring.Aspect |
param-pattern | .. 方法的参数类型,如java.lang.String |
throws-pattern | :方法抛出的异常类型,如java.lang.Exception |
主意: | 不建议全部切, 建议切点表达式配置的时候最好加包名和类名方法名名.可以准确筛选切点 |