基于 Annotation 的声明式
在 Spring 中,尽管使用 XML 配置文件可以实现 AOP 开发,但是如果所有的相关的配置都集中在配置文件中,势必会导致 XML 配置文件过于臃肿,从而给维护和升级带来一定的困难。
为此,AspectJ 框架为 AOP 开发提供了另一种开发方式——基于 Annotation 的声明式。AspectJ 允许使用注解定义切面、切入点和增强处理,而 Spring 框架则可以识别并根据这些注解生成 AOP 代理。
关于 Annotation 注解的介绍如表 1 所示。
表 1 Annotation 注解介绍 |
|
名称 |
说明 |
@Aspect |
用于定义一个切面。 |
@Before |
用于定义前置通知,相当于 BeforeAdvice。 |
@AfterReturning |
用于定义后置通知,相当于 AfterReturningAdvice。 |
@Around |
用于定义环绕通知,相当于MethodInterceptor。 |
@AfterThrowing |
用于定义抛出通知,相当于ThrowAdvice。 |
@After |
用于定义最终final通知,不管是否异常,该通知都会执行。 |
@DeclareParents |