我有一个春季项目:
.
├── src/main/java/ua/lokha/springtest
│ ├── Bean1.java
│ ├── Bean2.java
│ ├── IBean.java
│ └── TestApplication.java
└── pom.xml
类Bean1和Bean2是 bean 并且都实现了接口IBean。在这些 bean 中,我创建了相同的 init 方法,它向控制台输出一条消息:
@PostConstruct
public void init() {
System.out.println(this.getClass().getName());
}
当我运行项目时,日志中会显示以下 bean 加载顺序:
ua.lokha.springtest.Bean1
ua.lokha.springtest.Bean2
我试图在@Order(1)and中放一个注释,我试图交换这个注释。而且它没有改变任何东西,总是在之前加载。为什么?@Order(2)Bean1Bean2Bean1Bean2
我将此项目上传到 github:https ://github.com/lokha/spring-test
@Order用于指定集合中的顺序。例如,如果您有然后列表中的元素
beans将按顺序排列@Order。要控制 Bean1 依赖 Bean2 时 bean 的加载顺序,您应该使用@DependsOn