2015-05-14 46 views

回答

1

@Component@Configuration是不同類型的註釋。

@Component和類似註解(@Service@Repository等)和JSR-330對應,並允許您聲明豆是通過與<context:component-scan/>@ComponentScan自動掃描被拾起,他們註冊的類的bean定義,所以它們大致相當於使用XML以<bean ... />標記聲明指定的bean。這個bean類型將遵循標準的代理創建策略。

@Configuration註釋被設計爲替代XML配置文件。要創建@Configuration帶註釋的bean,Spring將始終使用CGLIB對@Configuration帶註釋的類進行子類化,覆蓋其帶有註釋的方法以使用bean查找方法替換它,以使單例bean僅被創建一次。儘管如此,@Configuration帶註釋的類仍然能夠使用註釋(@Autowired,@Inject等)字段和屬性從容器請求bean(以及其他@Configuration帶註釋的bean)。

現在回答你的問題,你必須用@Configuration然後用@ComponentScan(basePackages = { "com.test.*" })註釋類,你不能指定創建的順序。

+0

實際上'@ Configuration',就像'@ Service'也是一個'@ Component',在進行組件掃描時也會被檢測到。 –

+0

@Arpit和M. Deinum:謝謝你的回覆。正如Denuim所說,Configuration也是一個在組件掃描時會被檢測到的組件。實際上,我的要求是我想要在配置類中聲明所有特定於應用程序的配置數據(通過讀取屬性文件中的值),並且我想讓所有其他組件使用此配置數據。所以我希望這個配置類首先被加載,然後是所有其他組件。那麼只是想再次確認一下,我們不能指定創建的順序嗎? –