(十四)java版b2b2c社交电商spring cloud分布式微服务-在springboot中用redis实现消息队列

发布时间:2019-11-19 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了(十四)java版b2b2c社交电商spring cloud分布式微服务-在springboot中用redis实现消息队列脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

准备阶段
java 1.8
maven 3.0
idea
环境依赖
创建一个新的sPRingboot工程,在其pom文件,加入spring-boot-starter-data-redis依赖:

<dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-redis</artifactId>         </dependency>

创建一个消息接收者
REcevier类,它是一个普通的类,需要注入到springboot中。

public class Receiver {     private static final Logger LOGGER = LoggerFactory.getLogger(Receiver.class);      private CountDownLatch latch;      @Autowired     public Receiver(CountDownLatch latch) {         this.latch = latch;     }      public void receiveMessage(String message) {         LOGGER.info("Received <" + message + ">");         latch.countDown();     } }

注入消息接收者

@Bean     Receiver receiver(CountDownLatch latch) {         return new Receiver(latch);     }      @Bean     CountDownLatch latch() {         return new CountDownLatch(1);     }      @Bean     StringRedisTemplate template(RedisConnectionFactory connectionFactory) {         return new StringRedisTemplate(connectionFactory);     }

注入消息监听容器
在spring data redis中,利用redis发送一条消息和接受一条消息,需要三样东西:

一个连接工厂
一个消息监听容器
Redis template
上述1、3步已经完成,所以只需注入消息监听容器即可:

@Bean     RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,                                             MessageListenerAdapter listenerAdapter) {          RedisMessageListenerContainer container = new RedisMessageListenerContainer();         container.setConnectionFactory(connectionFactory);         container.addMessageListener(listenerAdapter, new PatternTopic("chat"));          return container;     }      @Bean     MessageListenerAdapter listenerAdapter(Receiver receiver) {         return new MessageListenerAdapter(receiver, "receiveMessage");     }

测试
在springboot入口的main方法:

public static void main(String[] args) throws Exception{         ApplicationContext ctx =  SpringApplication.run(SpringbootRedisApplication.class, args);          StringRedisTemplate template = ctx.getBean(StringRedisTemplate.class);         CountDownLatch latch = ctx.getBean(CountDownLatch.class);          LOGGER.info("Sending message...");         template.convertAndSend("chat", "Hello From Redis!");          latch.await();          System.exit(0);     }

Spring cloud B2B2c电子商务社交平台码请加企鹅求求:一零三八七七四六二六

脚本宝典总结

以上是脚本宝典为你收集整理的(十四)java版b2b2c社交电商spring cloud分布式微服务-在springboot中用redis实现消息队列全部内容,希望文章能够帮你解决(十四)java版b2b2c社交电商spring cloud分布式微服务-在springboot中用redis实现消息队列所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。