你不能完全按照你描述的方式去做。在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()
仍然會啓動它。