【问题标题】:Choose component loading order选择组件加载顺序
【发布时间】:2017-05-15 23:33:02
【问题描述】:
我有一个带有三个 @Component 类的弹簧靴。
src.main.java
|_components
|_A
|_B
|_C
我需要在执行A 之前执行B 和C。我该如何指定?
我应该使用@DependsOn 注释吗?还是@Order?所有在线答案均针对@Configuration 和@Bean 课程
【问题讨论】:
标签:
spring
spring-boot
spring-boot-actuator
【解决方案1】:
你应该可以像这样使用@DependsOn:
@DependsOn({"b", "c"})
@Component("a")
public class A {
}
@Component("b")
public class B {
}
@Component("c")
public class C {
}
【解决方案2】:
当您的组件是通知并且您希望一个通知在另一个通知之前运行时,您可以使用@Order(<int>) 表示法。在这种情况下,数字越小,优先级越高。
例如。
Advice @Order(5) will have higher precedence over @Order(10).