Spring @Order(Ordered.HIGHEST_PRECEDENCE)不能确保弹簧首先运行

时间:2017-10-19 10:38:37

标签: java spring spring-mvc javabeans

我有2个@Component类:AppConfig从Consul服务器加载属性,JpaConfig使用env加载@Bean通过AppConfig加载的属性设置@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之前启动,当时尚未设置环境。所有其他bean似乎等待LocalContainerEntityManagerFactoryBean罚款...为什么?我该怎么办?是@DependsOn - 具体的功能吗?如何确保bean首先运行而不指定@import "bootstrap/glyphicons";

1 个答案:

答案 0 :(得分:1)

尝试将consulProperties()实现为bean(不是Void类型)并将其作为参数注入entityManagerFactory()方法。