Spring使用AspectJ注解來聲明通知方法
注解(Annotation) | 通知(Advice) |
---|---|
@Aspect | 表明此Class不僅是POJO山析,也是一個切面 |
@After | 通知方法會在目標(biāo)方法返回或拋出異常后調(diào)用 |
@AfterReturning | 通知方法會在目標(biāo)方法返回后調(diào)用 |
@AfterThowing | 通知方法會在目標(biāo)方法拋出異常后調(diào)用 |
@Around | 通知方法會將目標(biāo)方法封裝起來 |
@Before | 通知方法會在目標(biāo)方法調(diào)用之前執(zhí)行 |
@Pointcut | 聲明頻繁使用的表達(dá)式 |
@EnableAspectJAutoProxy | 啟用AspectJ自動代理 |
@Pointcut 例子:
@Pointcut(execution(* concert.Performance.perform(..)))
public void performance(){}
然后后在AspectJ其他注解中用"Performance()"
替代堪遂,如@Before(“performance()”)
@DeclareParents
@DeclareParents用于將接口引入bean中。
注解由三個部分組成:
- value屬性指定引入接口的bean的類型念逞。
- defaultImpl屬性制定了為引入功能提供實(shí)現(xiàn)的類履羞。
- @DeclareParents注解所標(biāo)注的靜態(tài)屬性指明了要引入的接口弧腥。