首页 文章

Spring集成消息驱动的通道适配器刷新范围

提问于
浏览
2

我的应用程序使用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 回答

  • 1

    "active" beans不支持 @RefreshScope ;例如实现 SmartLifecycle 需要管理生命周期(启动/停止等)的那些 .

    它仅支持在刷新后获取新属性的被动bean .

    您必须侦听刷新事件并手动停止/重新配置/启动适配器 .

相关问题