首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring @Order(Ordered.HIGHEST_PRECEDENCE)不能确保spring首先运行

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

Stack Overflow用户
提问于 2017-10-19 18:38:37
回答 1查看 2.3K关注 0票数 0

我有两个@Component类:一个是从Consul server加载属性的AppConfig类,另一个是使用我通过AppConfig中的@Bean加载的属性设置的envJpaConfig类。所以有两个bean:

代码语言:javascript
复制
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
Void consulProperties() {
    //setting environment...
}

JpaConfig中排名第二

代码语言:javascript
复制
@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的情况下运行

EN

回答 1

Stack Overflow用户

发布于 2017-10-19 19:20:01

尝试将consulProperties()物化为bean (不是Void类型),并将其作为参数注入到entityManagerFactory()方法中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46827998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档