0
我有2 @Component
類:AppConfig
加載從使用env
我通過由@Bean
在AppConfig
加載屬性中設置領事服務器和JpaConfig
屬性。因此,有2種豆:春@Order(Ordered.HIGHEST_PRECEDENCE)並不能保證春潤第一
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
Void consulProperties() {
//setting environment...
}
其次在JpaConfig
:
@Bean
// @DependsOn("consulProperties")
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
//some more logic
return factoryBean;
}
這不無@DependsOn("consulProperties")
工作。它在consulProperties
之前開始啓動,當時環境還沒有設置。所有其他豆似乎都在等待consulProperties
好......爲什麼?我該怎麼做錯了?它是LocalContainerEntityManagerFactoryBean
- 特定的功能?如何確定一個bean首先運行而不指定@DependsOn
?
它不是一個bean,它應該使用ApplicationContextInitializer註冊爲一個額外的'PropertySource'。 –
它不能這樣做,因爲它需要具有指定url,令牌和映射consul屬性到環境屬性的邏輯。 – Daria
是的,它可以。我說你需要'PropertySource'我沒有說你需要'@ PropertySource'。基本上你在'@ Bean'方法裏面做的事情應該在你自定義的'PropertySource'(或'ApplicationContextInitializer')中並且通過'Environment'註冊。 –