0

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

  • 如果禁用,spring beans(包括端点映射)将从 main.xml 加载
  • 如果启用,spring beans(包括端点映射)将从 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...

谢谢,泰奥

4

1 回答 1

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测试时,在 ApplicationContext 中同时使用“test1.xml”、“test2.xml”(按此顺序),它属于 Test2 类。

于 2013-11-19T15:49:00.557 回答