【问题标题】:Multiple advices in single Aspect for same method execution pointcut - Spring AOP同一方法执行切入点的单个方面中的多个建议 - Spring AOP
【发布时间】:2015-11-04 23:12:01
【问题描述】:

我只是想了解一些与 Spring AOP 建议排序相关的内容。在它说的文档中

当定义在同一方面的两条通知都需要在同一连接点运行时,排序是不确定的(因为无法通过反射来检索 javac 编译类的声明顺序强>)。考虑将这些建议方法合并为每个方面类中每个连接点的一个建议方法,或者将建议的片段重构为单独的方面类 - 可以在方面级别进行排序。

我知道我们不能在一个方面为同一个切入点定义多个建议。我只是想了解 没有办法通过 javac 编译类的反射来检索声明顺序是什么意思> ?.

我已将@Order 注释放在一个Aspect 中同一切入点的多个建议上,并明确定义了从1 到3 的顺序。为什么当它通过反射和正确读取Aspect 类中的@Order 注释时无法获取此数字顺序值以正确的顺序调用建议?任何机构都可以让我理解这一点。非常感谢提前

【问题讨论】:

    标签: java spring reflection spring-aop


    【解决方案1】:

    也就是说,如果没有明确指定,订单是未定义的。 @Order 注解具有运行时保留:

    @Retention(value=RUNTIME)
    @Target(value={TYPE,METHOD,FIELD})
    public @interface Order
    

    并且可以通过反射读取顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-30
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 1970-01-01
      • 2011-09-20
      相关资源
      最近更新 更多