我有两个@Component类:一个是从Consul server加载属性的AppConfig类,另一个是使用我通过AppConfig中的@Bean加载的属性设置的env的JpaConfig类。所以有两个bean:
@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之前启动,在环境还没有设置的时候,.All其他bean似乎在等待consulProperties的正常运行……为什么?我做错了什么?是LocalContainerEntityManagerFactoryBean-specific功能吗?如何确保bean首先在不指定@DependsOn的情况下运行
发布于 2017-10-19 19:20:01
尝试将consulProperties()物化为bean (不是Void类型),并将其作为参数注入到entityManagerFactory()方法中。
https://stackoverflow.com/questions/46827998
复制相似问题