修改spring bean的初始化顺序
时间: 2023-07-28 09:21:40 浏览: 87
详解Spring 中如何控制2个bean中的初始化顺序
5星 · 资源好评率100%
在Spring中,可以通过实现org.springframework.core.Ordered接口或使用@Order注解来修改bean的初始化顺序。
1. 实现Ordered接口
实现Ordered接口的类可以通过getOrder()方法返回一个整数值,该值代表了bean初始化的优先级,数值越小越先初始化。
例如:
```java
@Component
public class MyBean implements Ordered {
@Override
public int getOrder() {
return 1;
}
}
```
2. 使用@Order注解
使用@Order注解,可以指定bean的初始化顺序,数值越小越先初始化。
例如:
```java
@Component
@Order(1)
public class MyBean {
}
```
需要注意的是,如果bean中有依赖关系,则需要通过@Autowired注解或实现org.springframework.context.annotation.DependsOn接口来指定初始化顺序。
例如:
```java
@Component
public class MyBean1 implements Ordered {
@Override
public int getOrder() {
return 1;
}
}
@Component
@Order(2)
@DependsOn("myBean1")
public class MyBean2 {
@Autowired
private MyBean1 myBean1;
}
```
在上述示例中,MyBean2依赖于MyBean1,因此需要通过@DependsOn注解指定MyBean1的初始化顺序。
阅读全文