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