使用JavaSpring的Redis发布/订阅
我创建了Redis Pub/Sub,其中包含一个主题和一个监听器,使用类似Java的thank: 这是我在MVCConfiguer中的bean:使用JavaSpring的Redis发布/订阅,java,spring,redis,publish-subscribe,Java,Spring,Redis,Publish Subscribe,我创建了Redis Pub/Sub,其中包含一个主题和一个监听器,使用类似Java的thank: 这是我在MVCConfiguer中的bean: @Bean MessageListenerAdapter messageListener() { return new MessageListenerAdapter(redisMsgHandler); } @Bean public RedisMessageListenerContainer redisM
@Bean
MessageListenerAdapter messageListener() {
return new MessageListenerAdapter(redisMsgHandler);
}
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer mlc = new RedisMessageListenerContainer();
mlc.setConnectionFactory(lettuceConnectionFactory());
mlc.addMessageListener(messageListener(), topic());
return mlc;
}
@Bean
ChannelTopic topic() {
return new ChannelTopic("pubsub:queue");
}
这就是我收到消息的地方,请不要使用这个RedisMsghandler类来配置MVCConfigure
public class RedisMsgHandler implements MessageListener {
@Override
public void onMessage(Message message, byte[] bytes) {
//impl goes here
}
}
我的主要目标是像RedisMsgHandler一样创建多个主题和多个听众,请让我知道如何做
我不喜欢创建大量在MessageListener上实现的类,也不喜欢为每个主题创建大量bean
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer mlc = new RedisMessageListenerContainer();
mlc.setConnectionFactory(lettuceConnectionFactory());
mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandler),
new ChannelTopic("pubsub:queue");
mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandlerAnother),
new ChannelTopic("pubsub:Otherqueue");
return mlc;
}
我想这样解决它:
@Bean
public RedisMessageListenerContainer redisMessageListenerContainer() {
RedisMessageListenerContainer mlc = new RedisMessageListenerContainer();
mlc.setConnectionFactory(lettuceConnectionFactory());
mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandler),
new ChannelTopic("pubsub:queue");
mlc.addMessageListener(new MessageListenerAdapter(redisMsgHandlerAnother),
new ChannelTopic("pubsub:Otherqueue");
return mlc;
}