springboot redis 实现消息发布/订阅

发布消息

stringRedisTemplate.convertAndSend("myMsgChannel", "Any Message");

订阅消息

// 创建消息监听器容器
@Bean
public RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
    RedisMessageListenerContainer listenerContainer = new RedisMessageListenerContainer();
    listenerContainer.setConnectionFactory(connectionFactory);
    return listenerContainer;
}
// 注册消息监听器
public void addListener(RedisMessageListenerContainer container) {
    MessageListenerAdapter adapter = new MessageListenerAdapter(
            new MyListener(), // 监听器实现类
            "onMessage" // 消息处理方法
    );
    // 一定要调用此方法
    adapter.afterPropertiesSet();
    // 监听特定的主题
    container.addMessageListener(adapter, new ChannelTopic("myMsgChannel"));
}

public class MyListener {
    public void onMessage(String message) {
        System.out.println("received msg:" + message);
    }
}

注意

  1. 可使用PatternTopic代替ChannelTopic实现监听多个主题
  2. 没有调用adapter.afterPropertiesSet();将报错如下

ERROR o.s.d.r.listener.adapter.MessageListenerAdapter - Listener execution failed

posted on   路过君  阅读(26)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2020-04-11 spring 启动时自动运行
2020-04-11 spring cloud oauth2授权服务 默认tokenService配置源码
2020-04-11 spring cloud 搭建oauth2授权服务 使用redis存储令牌
2020-04-11 spring cloud oauth2授权服务 clientDetails配置源码
2020-04-11 spring 验证框架
2020-04-11 IDEA 插件整理
2020-04-11 spring security笔记 默认登陆页面源码

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示