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

2022年12月1日13:29:31
  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注解的方法切面逻辑}

@Order的使用与Aop多切面的执行顺序
另外, 如果情况是允许耦合的, 可以创建新注解继承原注解, 或这继承多个原注解, 这样就自定义扩展并组合注解了

todo: @AfterReturning的使用

  • 作者:stevenxyy
  • 原文链接:https://blog.csdn.net/stevenxyy/article/details/107292184
    更新时间:2022年12月1日13:29:31 ,共 544 字。