在webApplication中使用多个applicationContexts和来自不同jar文件的重复bean ID

时间:2013-01-30 20:13:41

标签: spring

我在jar1的applicationContext1中定义了bean1和bean2,并且在jar2的applicationContext2中定义了bean1(当然是另一个类)和bean3

我需要在我的webapplication中使用jar1和jar2,它还有一个applicationContext3。

我在web.xml中使用以下条目

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>applicationContext1.xml
            <param-value>applicationContext2.xml
            <param-value>/WEB-INF/properties/application/applicationContext3.xml
    </param-value>
</context-param>

有没有办法为applicationContext ID添加前缀,以便它们不会互相跳过; 例如: 在applicationContext3中可以有

<bean id="myBean" >
  <property name="bean1" ref="ac1:bean1">
  <property name="bean2" ref="ac2:bean1">
</bean>

提前致谢

1 个答案:

答案 0 :(得分:0)

也许你可以以某种方式安排它(Spring非常灵活和强大)但我认为你应该清理一下你的背景。 如果您完全控制库和主应用程序,我建议只创建一个主applicationContext并从JAR复制相关的bean。

其他好的解决方案是将上下文模块中的每个applicationContext分开,例如repository-context.xml,business-context.xml等,并仅引用您需要的那些,这样您就可以更好地控制要加载的内容。

另外,看看这个: http://www.gridshore.nl/2008/05/13/spring-application-context-loading-tricks/