我的应用程序使用Spring Cloud ,刷新范围用于在配置更改时动态刷新一些bean . 如何使相同的行为也适用于Jms消息侦听器 . 下面是Spring集成中定义的消息监听器 . 如何在配置更改时定义此bean以进行刷新 . 在这种情况下,我使用max concurrent consumer和auto-startup属性从属性加载
<jms:message-driven-channel-adapter
id="processMessageDrivenChannelAdapter" send-timeout="5000"
max-messages-per-task="-1"
idle-task-execution-limit="100"
max-concurrent-consumers="${consumers}"
connection-factory="messageConnectionFactory"
destination="jmsQueue" channel="messageProcessChannel"
acknowledge="transacted" auto-startup="${autoStartUp}" />
1 回答
"active" beans不支持
@RefreshScope
;例如实现SmartLifecycle
需要管理生命周期(启动/停止等)的那些 .它仅支持在刷新后获取新属性的被动bean .
您必须侦听刷新事件并手动停止/重新配置/启动适配器 .