库中的Spring bean必须在“main”模块中的bean之前加载

时间:2014-01-23 12:56:13

标签: java spring

我有两个模块: A和B. A取决于B

每个都有一个Spring bean: A有bean_a B有bean_b

然而: bean_b依赖于bean_a,这意味着bean_a必须加载第一个

另外,bean_b是一个返回bean_b的方法。

所以我的代码看起来像这样: Bean B定义

@Bean
@DependsOn("bean_a")
public BeanBClass getBeanB() {// Do something}

模块应用程序上下文:

<context:annotation-config/>
<context:component-scan base-package="bean_a_package, bean_b_package"/>
<import resource="classpath*:module_b_context.xml"/>
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="ignoreResourceNotFound" value="true"/>
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE"/>
    <property name="locations">
        <list>
            Some relevant property files
        </list>
    </property>
</bean>

<bean id="bean_a" class="bean_a_package.bean_a_class">
    <property name="someProperty" value="${someProperty}"/>
</bean>

module_b_context.xml没有任何与该问题相关的内容,也没有PropertyPlaceholderConfigurer。

每当我运行我的应用程序时,我都会收到消息:

  

无法在字符串值中解析占位符'someProperty'   “$ {someProperty}

我能以某种方式解决这个问题吗?我猜测bean加载的顺序不能像我预期的那样工作,但我无法弄清楚如何解决它。

提前致谢

0 个答案:

没有答案