Spring面试题之如何控制Bean初始化顺序
IT那些年那些事 2017-11-17 13:53:53
问题:如何在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代码:
public class RankTwo implements Ranks{ //Same code as given above}
运行输出:
[RankTwo,RankOne, RankThree]