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方法。我明白你的意思了,谢谢,我会试试的。