SpringBoot2.0中使用订阅redis的多个频道的消息
Posted 精神病人思路广,弱智儿童欢乐多
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot2.0中使用订阅redis的多个频道的消息相关的知识,希望对你有一定的参考价值。
声明:参考文章:https://blog.csdn.net/myNameIssls/article/details/75471012?locationNum=2&fps=1
一·使用maven,在项目中引入redis启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二.注册一个redis消息监听类
@Configuration public class RedisSubListenerConfig { //不同的频道名 private static final String channel = "testchannel"; private static final String channel2 = "chat"; /** * redis消息监听器容器 * 可以添加多个监听不同话题的redis监听器,只需要把消息监听器和相应的消息订阅处理器绑定,该消息监听器 * 通过反射技术调用消息订阅处理器的相关方法进行一些业务处理 * @param connectionFactory * @param listenerAdapter * @return */ @Bean //相当于xml中的bean RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter listenerAdapter,MessageListenerAdapter listenerAdapter2) { RedisMessageListenerContainer container = new RedisMessageListenerContainer(); container.setConnectionFactory(connectionFactory); //订阅了一个叫testchannel 的通道 container.addMessageListener(listenerAdapter, new PatternTopic(RedisSubListenerConfig.channel)); //订阅了一个叫chat的频道 container.addMessageListener(listenerAdapter2, new PatternTopic(RedisSubListenerConfig.channel2)); return container; } /** * 消息监听器适配器,绑定消息处理器,利用反射技术调用消息处理器的业务方法 * @param receiver * @return */ @Bean MessageListenerAdapter listenerAdapter(MessageReceiver receiver) { return new MessageListenerAdapter(receiver, "receiveMessage"); } @Bean MessageListenerAdapter listenerAdapter2(MessageReceiver receiver) { return new MessageListenerAdapter(receiver, "receiveMessage2"); } /**redis 读取内容的template */ @Bean StringRedisTemplate template(RedisConnectionFactory connectionFactory) { return new StringRedisTemplate(connectionFactory); } }
三·编写处理订阅消息的类
@Component public class MessageReceiver { /**接收消息的方法*/ public void receiveMessage(String message){ System.out.println("收到一条消息:"+message); } /**接收消息的方法*/ public void receiveMessage2(String message){ System.out.println("收到一条消息2:"+message); } }
四.启动程序,向redis的chat以及testchannel频道中发送消息,都可以监听到
以上是关于SpringBoot2.0中使用订阅redis的多个频道的消息的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot2.0之整合ActiveMQ(发布订阅模式)
基于SpringBoot2.0默认使用Redis连接池的配置操作
springboot2.0 redis EnableCaching的配置和使用
SpringBoot2.0 基础案例(08):集成Redis数据库,实现缓存管理