我有两个模块: 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加载的顺序不能像我预期的那样工作,但我无法弄清楚如何解决它。
提前致谢