如何在 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的最大值和最小值。

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

简单举例

Ranks.java

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

RankOne.java

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

RankTwo.java

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

RankThree.java

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

Results.java

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

beans.xml

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

RanksClient.java

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

运行输出:

[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

推荐:

最全的java面试题库

如何在 Spring 中控制 Bean 初始化先后顺序?
PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。“在看”支持我们吧!

原文始发于微信公众号(Java笔记虾):如何在 Spring 中控制 Bean 初始化先后顺序?

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/126449.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!