【问题标题】:I need 2 endpoint mapping beans with the same id我需要 2 个具有相同 id 的端点映射 bean
【发布时间】:2013-11-19 15:37:46
【问题描述】:

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

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

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

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

谢谢, 特奥

【问题讨论】:

    标签: java spring spring-ws endpoint endpoints


    【解决方案1】:

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

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

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

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

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

    在 test2.xml 中

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

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

    【讨论】:

    • 是的,但是在代码的 sn-p 中,bean 具有不同的 id。我不需要相同的 id 才能正确限定为端点映射吗?
    • 这确实是一个解决方案,虽然我希望得到一些不依赖于订单的东西。
    猜你喜欢
    • 1970-01-01
    • 2019-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多