拦截器
Interceptor触发
AOP分为控制层AOP和业务层AOP。控制层拦截器的触发,只需发起action请求即可。业务层拦截器的触发要先使用enhance方法对目标对象进行增强,然后调用目标方法即可。
Inject拦截器
无需使用Before注解配置拦截器,在使用enhance或duang方法增强时使用参数传入的拦截器。Inject拦截器与Class级拦截器一样,将拦截目标类中的所有方法,执行次序上在Class级拦截器之前。
//设置拦截器
OrderService service =Enhancer.enhance(OrderService.class , Interceptor.class)
Duang、Enhancer
Duang、Enhancer对目标进行增强,使其具有AOP的能力。
OrderService service =Enhancer.enhance(OrderService.class )
OrderService service =Duang.duang(OrderService.class)
Clear
Clear注解用于清除声明在Method以外的拦截器,即只能清除Global、Class或Inject拦截器。
(1)不带参数时清除所有拦截器
(2)带参数时只清除该参数指定的拦截器
(3)清除操作仅作用于Method之外的拦截器
Before
可以配置Class、Method级别的拦截器。