Spring使用AspectJ注解来声明通知方法
注解(Annotation) | 通知(Advice) |
---|---|
@Aspect | 表明此Class不仅是POJO,也是一个切面 |
@After | 通知方法会在目标方法返回或抛出异常后调用 |
@AfterReturning | 通知方法会在目标方法返回后调用 |
@AfterThowing | 通知方法会在目标方法抛出异常后调用 |
@Around | 通知方法会将目标方法封装起来 |
@Before | 通知方法会在目标方法调用之前执行 |
@Pointcut | 声明频繁使用的表达式 |
@EnableAspectJAutoProxy | 启用AspectJ自动代理 |
@Pointcut 例子:
@Pointcut(execution(* concert.Performance.perform(..)))
public void performance(){}
然后后在AspectJ其他注解中用"Performance()"
替代,如@Before(“performance()”)
@DeclareParents
@DeclareParents用于将接口引入bean中。
注解由三个部分组成:
- value属性指定引入接口的bean的类型。
- defaultImpl属性制定了为引入功能提供实现的类。
- @DeclareParents注解所标注的静态属性指明了要引入的接口。