@Order的使用与Aop多切面的执行顺序

本文探讨了Spring AOP中多个切面的优先级设定,如何通过@Order注解自定义加载顺序,以及如何创建自定义注解来扩展和组合原有注解,实现特定业务逻辑的增强,如持久化操作日志。同时,详细解析了不同AOP通知类型(如@Around、@Before、@After等)的执行流程。
  1. @Order: 设置该类在spring容器中的加载顺序, 越小越早优先加载
  2. 多个Aop是可以切同一点的, 比如, 想把@ApiOperation(Swag注解的)地方再自定义增强一下, 比如 持久化一行操作日志到数据库, 那就可以自定义一个注解, 切同一个位置, 干你自己想干的事.
  3. 那多个Aop的优先顺序(默认按切面工具类的名称首字母a-z执行顺序, 也就是spring默认的加载顺序), 可以使用@order自己定义顺序,
    值得注意的是:
    环绕前置(即point.proceed()前面的代码)
    环绕后置(即point.proceed()后面的代码)
try{  
     try{  
         doBefore();//对应@Before注解的方法切面逻辑  
         method.invoke();  
     }finally{  
         doAfter();//对应@After注解的方法切面逻辑  
     }  
     doAfterReturning();//对应@AfterReturning注解的方法切面逻辑 
     //在 
 }catch(Exception e){  
      doAfterThrowing();//对应@AfterThrowing注解的方法切面逻辑  
 } 

在这里插入图片描述
另外, 如果情况是允许耦合的, 可以创建新注解继承原注解, 或这继承多个原注解, 这样就自定义扩展并组合注解了

todo: @AfterReturning的使用

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值