Spring3 为 AOP 的实现提供了一套 Annotation 注解,如下:
- @AspectJ:用于定义一个切面。
- @Pointcut:用于定义一个切入点,切入点的名称由一个方面名称定义。
- @Before:用于定义一个前置通知。
- @AfterReturning:用于定义一个后置通知。
- @AfterThrowing:用于定义一个异常通知。
- @Around:用于定义一个环绕通知。
1 | //日志切面 |
为了让 @AspectJ 的注解能正常工作,需要在配置文件的 <beans>
标记中导入 AOP 命名空间及其配套的 schemaLocation 。还需要开启基于 @AspectJ 切面的注解处理器,并将日志通知 AllLogAdviceByAnnotation 交给 Spring 容器管理。1
2
3
4<!-- 开启基于 @AspectJ 切面的注解处理器 -->
<aop:aspectj-autoproxy />
<!-- 将日志通知 AllLogAdviceByAnnotation 交给 Spring 容器管理 -->
<bean class="com.shw.aop.AllLogAdviceByAnnotation" />