Spring面試題之如何控制Bean初始化順序

問題:如何在Spring中控制Bean初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個value屬性,類型是整型,如:1,2 等等。值越小擁有越高的優先級。

默認的屬性是Ordered.LOWEST_PRECEDENCE,

代表的是最低優先級。

通過代碼可以發現最大值和最小值的定義就是Inger的最大值和最小值。

問題:如何在Spring中控制Bean初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個value屬性,類型是整型,如:1,2 等等。值越小擁有越高的優先級。

默認的屬性是Ordered.LOWEST_PRECEDENCE,

代表的是最低優先級。

通過代碼可以發現最大值和最小值的定義就是Inger的最大值和最小值。

Spring面試題之如何控制Bean初始化順序

簡單舉例

Ranks.java

問題:如何在Spring中控制Bean初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個value屬性,類型是整型,如:1,2 等等。值越小擁有越高的優先級。

默認的屬性是Ordered.LOWEST_PRECEDENCE,

代表的是最低優先級。

通過代碼可以發現最大值和最小值的定義就是Inger的最大值和最小值。

Spring面試題之如何控制Bean初始化順序

簡單舉例

Ranks.java

Spring面試題之如何控制Bean初始化順序

RankOne.java

問題:如何在Spring中控制Bean初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個value屬性,類型是整型,如:1,2 等等。值越小擁有越高的優先級。

默認的屬性是Ordered.LOWEST_PRECEDENCE,

代表的是最低優先級。

通過代碼可以發現最大值和最小值的定義就是Inger的最大值和最小值。

Spring面試題之如何控制Bean初始化順序

簡單舉例

Ranks.java

Spring面試題之如何控制Bean初始化順序

RankOne.java

Spring面試題之如何控制Bean初始化順序

RankTwo.java

問題:如何在Spring中控制Bean初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個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初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個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初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個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初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個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初始化先後順序?

從Spring 2.0出現後,Spring提供@Order註解來定義了組件的加載順序。

@Order定義

@Retention(value=RUNTIME)@Target(value={TYPE,METHOD,FIELD})@Documentedpublic@interfaceOrder

這個標記包含一個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)publicclassRankTwoimplementsRanks{//Samecodeasgivenabove}

運行輸出:

[RankTwo,RankOne, RankThree]

相關推薦

推薦中...