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

时间:2018-03-15 23:05:53

标签: spring spring-integration spring-cloud

我的应用程序使用Spring云,刷新范围用于在配置更改时动态刷新一些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 个答案:

答案 0 :(得分:1)

“活跃”bean不支持

@RefreshScope;例如实现SmartLifecycle需要管理生命周期(启动/停止等)的那些。

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

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