AOP配置(注解)
基本的注解配置
@Aspect
- 位置:类定义上方
- 作用:设置当前类为切面类
@Pointcut
- 位置:方法定义上方
- 作用:使用**当前的方法名**作为切入点引用名称
- 可以写在独立类中
@Before
- 位置:方法定义上方
- 作用:标注该方法作为前置通知
@After
- 位置:方法定义上方
- 作用:标注该方法作为后置通知
@AfterReturning
- 位置:方法定义上方
- 作用:标注该方法作为返回后通知
@AfterThrowing
- 位置:方法定义上方
- 作用:标注该方法作为异常后通知
@Around
- 位置:方法定义上方
- 作用:标注该方法作为环绕通知
注解后添加参数
注解配置:
XML配置:
AOP注解开发通知执行顺序控制
Spring AOP运行机制
- 同个通知类中,相同通知类型以方法名排序为准
- 不同通知类中,以类名排序为准
- 使用@Order()注解通过变更bean的加载顺序改变通知的加载顺序
企业开发经验
通知方法名由3部分组成,分别是前缀、顺序编码、功能描述
前缀为固定字符串,例如 baidu、 timber等,无实际意义
顺序编码为6位以内的整数,通常3位即可,不足位补0
功能描述为该方法对应的实际通知功能,例如 exception、 strlenCheck、log
控制通知执行顺序使用顺序编码控制,使用时做定空间预留
- 003使用,006使用,预留001、002、004、005、007、008
- 使用时从中段开始使用,方便后期做前置迫加或后置迫加
- 最终顺序以运行顺序为准,以测试结果为准,不以设定规则为准