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'注册。 –