声明:参考文章: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频道中发送消息,都可以监听到

最新文章

  1. Eclipse 的单步调试
  2. 教你几种在SQLServer中删除重复数据方法(转)
  3. C# 解析XML格式的字符串
  4. ADO.NET基础02(语句参数化,配置文件,DataSet与DataTable)
  5. Swift - 19 - 字典的初始化
  6. 百度地图API 重新生成点聚合的功能
  7. HDOJ 5093 Battle ships 二分图匹配
  8. 为多态基类声明virtual析构函数
  9. python3列表
  10. javascript的数组之reverse()
  11. R语言学习网址
  12. cc攻击和ddos攻击
  13. 小白学习Python遇到的一些2.7与3.X之间的不同问题
  14. Structs复习 开始 第一个helloworld项目
  15. ODT(old driver tree)详解(带例题)
  16. (原创)C++11改进我们的程序之简化我们的程序(二)
  17. [git]git project仓库迁移
  18. PHP之string之ltrim()函数使用
  19. 第三章 线程安全的DateFormat工具类
  20. U3D OnDrawGizmos

热门文章

  1. matlab经验总结(转)
  2. springboot实现拦截器
  3. java并发之阻塞队列
  4. 洛谷 U5737 纸条
  5. POJ 1284
  6. Tcl学习之--表达式
  7. VMware-workstation安装
  8. C++实现位数组
  9. xargs用例一个
  10. 7个好用的在线YouTube视频下载工具