yw6866 发表于 2017-12-22 08:14:13

Redis实现消息的发布/订阅

  利用spring-boot结合redis进行消息的发布与订阅:
  发布:
  class Publish {
  private static String topicName = “Topic:chat”;
  @Bean
  RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory, MessageListenerAdapter messageListenerAdapter ) {
  RedisMessageListenerContainerredisMessageListenerContainer= new RedisMessageListenerContainer ();
  redisMessageListenerContainer.setConnectionFactory(connectionFactory);
  redisMessageListenerContainer.addMessageListenerAdapter(messageListenerAdapter ,new PatternTopic(topicName ));
  returnredisMessageListenerContainer;
  }
  @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);
  }
  }
页: [1]
查看完整版本: Redis实现消息的发布/订阅