2014-01-16 51 views
0

我正在尋找一種方式來有條件地設置jms:消息驅動通道適配器在春天3.0 &春天集成2.2。Spring集成 - 如何創建可選的jms:消息驅動通道適配器?

我想在屬性文件中輸入一個屬性文件,例如:「create.message.driven.channel.adapter = true」,我希望spring決定是否設置單獨的頻道從屬性文件中輸入。

有沒有辦法只使用spring xml配置和屬性文件來完成此操作?

回答

1

你不能完全按照你描述的方式去做。在Spring 3.1中,你可以使用Spring配置文件做...

<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()仍然會啓動它。

相關問題