【问题标题】:Spring Integration - How to create an optional jms:message-driven-channel-adapter?Spring Integration - 如何创建可选的 jms:message-driven-channel-adapter?
【发布时间】:2014-01-16 00:23:36
【问题描述】:

我正在寻找一种在 spring 3.0 和 spring 集成 2.2 中有条件地设置 jms:message-driven-channel-adapter 的方法。

我想在属性文件中为每个环境添加一个条目,例如:“create.message.driven.channel.adapter=true”,我希望 spring 决定是否仅基于设置通道属性文件中的条目。

有没有办法只使用 spring xml 配置和属性文件来完成这个?

【问题讨论】:

    标签: spring spring-integration


    【解决方案1】:

    你不能完全按照你描述的方式去做。使用 Spring 3.1,您可以使用 Spring Profiles...

    <beans>
        ...
    
        <beans profile="foo">
           <jms:message-driven-adapter ... />
        </beans>
    </beans>
    

    然后使用 ...-Dspring.profiles.active=foo 运行。

    你可以用 JavaConfig 做到这一点

    @Bean
    public Object foo() {
        // if property set, return an MDA, otherwise a String
    }
    

    或者,可能是最简单的,只要你没有明确地start() 上下文,你可以使用

    <jms:message-driven-adapter ... 
        auto-startup="${start.message.driven.channel.adapter}" />
    

    在这种情况下,bean 将被定义,但它只是不会启动,因此它甚至不会打开 JMS 连接。您还需要一个指向属性文件的属性占位符配置器。

    但是,自动启动仅适用于在refresh() 上启动,显式context.start() 仍会启动它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-18
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 2017-04-28
      相关资源
      最近更新 更多