其他
如何在 Spring 中控制 Bean 初始化先后顺序?
问题:如何在Spring中控制Bean初始化先后顺序?
从Spring 2.0出现后,Spring提供@Order注解来定义了组件的加载顺序。
@Order定义
@Retention(value=RUNTIME)
@Target(value={TYPE,METHOD,FIELD})
@Documented
public @interface Order
这个标记包含一个value属性,类型是整型,如:1,2 等等。值越小拥有越高的优先级。
默认的属性是Ordered.LOWEST_PRECEDENCE
,代表的是最低优先级。
通过代码可以发现最大值和最小值的定义就是Inger的最大值和最小值。
简单举例
Ranks.java
RankOne.java
RankTwo.java
RankThree.java
Results.java
beans.xml
RanksClient.java
运行输出:
[RankOne, RankThree, RankTwo]
修改RankTwo代码:
@Component@Order(1)
public class RankTwo implements Ranks{ //Same code as given above}
运行输出:
[RankTwo,RankOne, RankThree]
感谢阅读,希望对你有所帮助 :)
来源:blog.csdn.net/keepfriend/article/details/113860086
END
往期精彩告别卡顿困扰:IDEA 性能优化设置
Spring Boot + Redis 解决重复提交问题
Spring Boot代码混淆,别再让代码在线上进行裸奔
Spring Boot 全局异常拦截器
高质量的技术交流群,关注SpringForAll社区