我需要2个具有相同id的端点映射bean

时间:2013-11-19 15:37:46

标签: java spring spring-ws endpoint endpoints

让我们说我的应用程序具有可以启用或禁用的功能:

  • 如果禁用,将从main.xml
  • 加载spring bean(包括端点映射)
  • 如果启用,将从main.xml extra.xml加载spring bean(包括端点映射)。

问题是我的端点映射的id为" mynamespaceEndpointMapping"。此bean的类型为org.springframework.ws.server.endpoint.mapping.PayloadRootQNameEndpointMapping。

我如何定义这个bean,当它从main.xml加载时它只有一个端点但是当它从extra.xml加载时它有10个端点? (我不想要在main.xml中定义所有10个端点,如果我没有在那里使用它们)我可以使用bean继承但这会打破命名空间命名约定,因为我可能需要bean的不同id。 ..

谢谢, TEO

1 个答案:

答案 0 :(得分:0)

您需要覆盖spring bean。就像在这个答案:Spring's overriding bean

但这只适用于XML配置,而不适用于注释。

编辑:我的意思是接受的答案。但我用自己的代码测试了它。

我有2个身份证。在test1.xml

<bean id="test" class="Test1" />

和test2.xml

<bean id="test" class="Test2" />

在启动期间,当我获得Spring bean test 它的类Test2时,在ApplicationContext中使用“test1.xml”,“test2.xml”(按此顺序)。