,我有以下豆在我contexs:兩個bean具有相同名稱在不同的上下文
<!-- Context 1 -->
<beans profile="ldap">
<bean id="activeDirectoryAuthProvider" class="com.production.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="${ldap.login.provider.domain}"/>
<constructor-arg value="${ldap.login.provider.url}" />
<property name="useAuthenticationRequestCredentials" value="true" />
<property name="convertSubErrorCodesToExceptions" value="true" />
</bean>
</beans>
<!-- Context 2 -->
<bean id="activeDirectoryAuthProvider" class="com.test.TestActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="${ldap.login.provider.domain}"/>
<constructor-arg value="${ldap.login.provider.url}" />
<property name="useAuthenticationRequestCredentials" value="true" />
<property name="convertSubErrorCodesToExceptions" value="true" />
</bean>
我的目標是使用第一個bean只爲量產版另一個用於測試目的。
即我開始測試基於生產上下文我期望生產bean將被測試bean替換爲所需的配置。
但不幸的是,當我試圖創建兩個具有相同名稱的bean時,只有生產bean被創建,而另一個被忽略。另一件事,我注意到,當我試圖將測試bean名稱更改爲:activeDirectoryAuthProvider1然後這兩個bean都成功創建。任何人都可以解釋爲什麼會發生,並建議可能的解決方案如何繞過它?
是的,我們已經使用了兩種不同的上下文,即測試環境包括生產環境。最初的想法是使用除dataSource之類的幾個bean之外的所有生產bean ...以避免在項目周圍重複使用bean。 – fashuser 2015-03-03 11:12:13
應該可以有3個配置文件: 文件1:僅生產豆 文件2:僅開發豆 文件3:共享豆(開發和生產) – Giovanni 2015-03-03 12:41:42