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



假设我的应用程序有一个可以启用或禁用的功能:

  • 如果禁用,springbean(包括端点映射)将从main.xml加载
  • 如果启用,springbean(包括端点映射)将从main.xmlextra.xml加载

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

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

谢谢,Teo

您需要覆盖springbean。就像这个答案一样:Spring';s覆盖bean

但这只能通过XML配置实现,而不能通过注释实现。

编辑:我指的是公认的答案。但我用自己的代码进行了测试。

我有两个身份证。在test1.xml 中

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

以及在test2.xml 中

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

在启动过程中,当我获得Springbeantest时,在ApplicationContext-en中同时使用"test1.xml"one_answers"test2.xml"(按顺序),它属于test2类。

最新更新