Java Spring@Order(有序。最高优先级)不';我不能先保证弹簧运转

Java Spring@Order(有序。最高优先级)不';我不能先保证弹簧运转,java,spring,spring-mvc,javabeans,Java,Spring,Spring Mvc,Javabeans,我有两个@Component类:AppConfig从Consor服务器加载属性,以及JpaConfig使用env,我通过AppConfig中的@Bean加载的属性设置。因此有两个bean: @Bean @Order(Ordered.HIGHEST_PRECEDENCE) Void consulProperties() { //setting environment... } 第二个在JpaConfig中: @Bean // @DependsOn("consulProperties")

我有两个
@Component
类:
AppConfig
从Consor服务器加载属性,以及
JpaConfig
使用
env
,我通过
AppConfig
中的
@Bean
加载的属性设置。因此有两个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(“consultproperties”)
,这就不起作用。它在尚未设置环境时在
consultproperties
之前启动。所有其他bean似乎都在等待
consultproperties
罚款。。。为什么?我做错了什么?它是否是特定于LocalContainerEntityManagerFactoryBean的功能?如何确保bean首先运行而不指定
@DependsOn

尝试将
consultProperties()
具体化为bean(而不是
Void
类型),并将其注入
entityManagerFactory()
方法作为参数。

它不是一个bean,应该使用
ApplicationContextInitializer
将它注册为一个附加的
PropertySource
。不能这样做,因为它需要指定url、令牌和将Consult属性映射到环境属性的逻辑。是的,它可以。我说你需要一个
PropertySource
我没说你需要
@PropertySource
。基本上,您在
@Bean
方法中所做的事情应该是在您的自定义
PropertySource
(或
ApplicationContextInitializer
)中,并通过
环境注册。您可以与刚才提到的内容共享代码吗:(url、令牌等)。我确信这是可能的。@m.Deinum我把它放在
Evironment
中,但用bean方法。我明白你的意思了,谢谢,我会试试的。