@RefreshScope阻止Redis消息侦听器订阅

时间:2020-05-20 16:23:30

标签: spring spring-boot spring-cloud spring-cloud-config spring-data-redis

我有一个Redis Pub / Sub的Spring配置,类似于下面的配置...


@Bean
@Qualifier("someTopic")
public ChannelTopic someTopic() {
    return new ChannelTopic("someTopic");
}

@Bean
public MessageListenerAdapter someMessageListener() {
    MessageListenerAdapter someMessageListener = new MessageListenerAdapter(SomeMessageSubscriber);
    return someMessageListener;
}

@Bean
@RefreshScope
public RedisMessageListenerContainer redisContainer(RedisConnectionFactory connectionFactory) {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    container.addMessageListener(someMessageListener(), someTopic());
    return container;
}

@RefreshScope上包含RedisMessageListenerContainer批注时,启动应用程序时听众未订阅该主题。删除注释后,一切似乎都按预期工作。

关于为什么要包含此@RefreshScope注释的任何想法都将阻止邮件侦听器的订阅,以及如何使用包含的注释解决此问题?

0 个答案:

没有答案