我有一个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
注释的任何想法都将阻止邮件侦听器的订阅,以及如何使用包含的注释解决此问题?