有没有办法将SimpleMessageListenerContainer
初始化为已停止?
即。我不想在以后用户执行操作以启动JMS容器时使用任何JMS消息
我在创建bean后立即尝试调用.stop()
...但似乎为时尚早。
稍后调用停止/启动工作正常,但我不想冒险处理任何消息,直到用户准备好。
答案 0 :(得分:4)
SimpleMessageListenerContainer
实现SmartLifecycle
接口。此接口定义方法isAutoStartup
。当此方法返回true
时,组件将自动启动。
实现SmartLifecycle
接口的大多数bean也有一个方法setAutoStartup
来允许设置此属性。将其设置为false
将禁用组件的自动启动。
<bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
<property name="autoStartup" value="false" />
// Other Properties initialization
</bean>
或者在Java Config中
@Bean
public SimpleMessageListenerContainer container() {
SimpleMessageListenerContainer smlc = new SimpleMessageListenerContainer();
smlc.setAutoStartup(false);
...
return smlc;
}
目前无法使用jms名称空间设置此属性。