查看原文
其他

如何在 Spring 中控制 Bean 初始化先后顺序?

SpringForAll 2023-04-28
关注我,回复关键字“spring”
免费领取Spring学习资料

问题:如何在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社区,回复:加群

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存