Redis实现消息的发布/订阅


利用spring-boot结合redis进行消息的发布与订阅:

  发布:

  class Publish {

    private static String topicName = “Topic:chat”;

    @Bean

    RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter ) {

      RedisMessageListenerContainer  redisMessageListenerContainer  = new RedisMessageListenerContainer ();

      redisMessageListenerContainer.setConnectionFactory(connectionFactory);

      redisMessageListenerContainer.addMessageListenerAdapter(messageListenerAdapter ,new PatternTopic(topicName ));

      return  redisMessageListenerContainer;

    }

 

    @Bean

    MessageListenerAdapter messageListenerAdapter(Receiver recevier){

      return new MessageListenerAdapter (recevier,"receiveMessage");

    }

 

    @Bean

    Receiver recevier(@Value("Receiver-1") String name) {

      return new Receiver(name);

    }

 

    public static main(String[] args) {

      ApplicationContext ctx = SpringApplication.run(Publish .class,args);

      StringRedisTemple stringRedisTemple = ctx.getBean(StringRedisTemple.class);

      stringRedisTemple.convertAndSend(topicName ,"HAHAHAHAHAHA"); 

    }

  } 

 

      订阅:

  class Receiver {

    private String name;

    @Autowired

    public Receiver(String name) {

      this.name = name;

    }

 

    public void receiveMessage(String message) {

      System.ount.println(name + message);

    }

  }

  

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM