AspectJ简介
@TOC
切面的执行时间
执行时间在规范中叫做Advice(通知,增强),在aspectJ框架中使用注解表示,主要有5种
- @Before
- @AfterReturning
- @Around
- @AfterThrowing
- @After
切面的执行位置
使用的时AspectJ的切入点表达式
表达式的原型
举例
execution(public * * (. .))
表示:任意公共方法
第一个表示任意返回类型 第二个表示任意方法名 (. .)参数也是任意的
execution(* set*(. .))
表示:任何一个以"set"开始的方法
这里的访问权限类型省略了 第一个*表示返回类型 第二个表示set开始任意方法名
excution(* com.xyz.service.* .*(. .))
表示:任意com.xyz.service的任意类的任意方法
第一个表示类名,因为带包名的都要包含类名 第二个表示方法名
execution(* com.xyz.service…* . *(. .))
表示:service包或者子包里的任意类的任意方法。
…后面必须跟*,表示包、子包下的所有类。
execution(* *. .service. * . *(. .))
表示:所有包下的service子包下所有类(接口)种所有方法
execution(* *.service . * . * (. .))
表示:只有一级包下的service子包下所有类(接口)种的方法