全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

spring boot整合RabbitMQ(Direct模式)

springboot集成RabbitMQ非常简单,如果只是简单的使用配置非常少,springboot提供了spring-boot-starter-amqp项目对消息各种支持。

1.新建一个Spring Boot工程,命名为:“rabbitmq-hello”。

在pom.xml中引入如下依赖内容,其中spring-boot-starter-amqp用于支持RabbitMQ。

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

2.在application.properties中配置关于RabbitMQ的连接和用户信息,用户可以回到上面的安装内容,在管理页面中创建用户。

spring.application.name=rabbitmq-hello
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=admin
spring.rabbitmq.password=123456

3.创建消息生产者Sender。通过注入AmqpTemplate接口的实例来实现消息的发送,AmqpTemplate接口定义了一套针对AMQP协议的基础操作。

在Spring Boot中会根据配置来注入其具体实现。在该生产者,我们会产生一个字符串,并发送到名为hello的队列中。

@Component
public class Sender {
 @Autowired
 private AmqpTemplate rabbitTemplate;
 public void send() {
  String context = "hello " + new Date();
  System.out.println("Sender : " + context);
  this.rabbitTemplate.convertAndSend("hello", context);
 }
}

4.创建消息消费者Receiver。

通过@RabbitListener注解定义该类对hello队列的监听,并用@RabbitHandler注解来指定对消息的处理方法。所以,该消费者实现了对hello队列的消费,消费操作为输出消息的字符串内容。

@Component
@RabbitListener(queues = "hello")
public class Receiver {
 @RabbitHandler
 public void process(String hello) {
  System.out.println("Receiver : " + hello);
 }
}

5.创建RabbitMQ的配置类RabbitConfig,用来配置队列、交换器、路由等高级信息。这里我们以入门为主,先以最小化的配置来定义,以完成一个基本的生产和消费过程。

@Configuration
public class RabbitConfig {
 @Bean
 public Queue helloQueue() {
  return new Queue("hello");
 }
}

6.创建应用主类:

@SpringBootApplication
public class HelloApplication {
 public static void main(String[] args) {
  SpringApplication.run(HelloApplication.class, args);
 }
}

7.创建单元测试类,用来调用消息生产:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = HelloApplication.class)
public class HelloApplicationTests {
  @Autowired
  private Sender sender;
  @Test
  public void hello() throws Exception {
    sender.send();
  }
}

8.启动应用主类,从控制台中,我们看到如下内容,程序创建了一个访问127.0.0.1:5672中admin的连接。

o.s.a.r.c.CachingConnectionFactory    : Created new connection: SimpleConnection@29836d32 [delegate=amqp://admin@127.0.0.1:5672/]

同时,我们通过RabbitMQ的控制面板,可以看到Connection和Channels中包含当前连接的条目。

9.运行单元测试类,我们可以看到控制台中输出下面的内容,消息被发送到了RabbitMQ Server的hello队列中。

Sender : hello Sun Sep 25 11:06:11 CST 2016

10.切换到应用主类的控制台,我们可以看到类似如下输出,消费者对hello队列的监听程序执行了,并输出了接受到的消息信息。

Receiver : hello Sun Sep 25 11:06:11 CST 2016

通过上面的示例,我们在Spring Boot应用中引入spring-boot-starter-amqp模块,进行简单配置就完成了对RabbitMQ的消息生产和消费的开发内容。

需要注意的地方,Direct模式相当于一对一模式,一个消息被发送者发送后,会被转发到一个绑定的消息队列中,然后被一个接收者接收!

实际上RabbitMQ还可以支持发送对象:当然由于涉及到序列化和反序列化,该对象要实现Serilizable接口.HelloSender做出如下改写:

public void send() {
  User user=new User();  //实现Serializable接口
  user.setUsername("hlhdidi");
  user.setPassword("123");
  template.convertAndSend("queue",user);
}
HelloReceiver做出如下改写:
@RabbitListener(queues="queue")  //监听器监听指定的Queue
public void process1(User user) {  //用User作为参数
  System.out.println("Receive1:"+user);
}

以上所述是小编给大家介绍的spring boot整合RabbitMQ(Direct模式),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# springboot  # rabbitmq  # springboot X-Accel-Redirect 大文件下载实现  # springboot如何重定向携带数据 RedirectAttributes  # springboot 重定向方式(redirect前缀)  # 基于springboot redirect重定向路径问题总结  # springboot 如何重定向redirect 并隐藏参数  # C#使用RabbitMq队列(Sample  # Work  # Fanout  # Direct等模式的简单使用)  # rabbitmq使用springboot实现direct模式(最新推荐)  # 可以看到  # 小编  # 单元测试  # 序列化  # 还可以  # 在此  # 给大家  # 涉及到  # 用户可以  # 来实现  # 命名为  # 所述  # 绑定  # 需要注意  # 给我留言  # 中会  # 感谢大家  # 切换到  # 新建一个  # 先以 


相关文章: 建站之星如何一键生成手机站?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  常州企业建站如何选择最佳模板?  建站之星伪静态规则如何设置?  建站之星如何实现PC+手机+微信网站五合一建站?  香港服务器选型指南:免备案配置与高效建站方案解析  制作网站的公司有哪些,做一个公司网站要多少钱?  如何用PHP工具快速搭建高效网站?  如何用美橙互联一键搭建多站合一网站?  建站之星×万网:智能建站系统+自助建站平台一键生成  网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  宝塔Windows建站如何避免显示默认IIS页面?  C#如何使用XPathNavigator高效查询XML  建站之星如何快速生成多端适配网站?  Swift开发中switch语句值绑定模式  如何在万网ECS上快速搭建专属网站?  公众号网站制作网页,微信公众号怎么制作?  如何通过宝塔面板实现本地网站访问?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)    建站之星后台密码遗忘或太弱?如何重置与强化?  如何在云主机上快速搭建网站?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  建站与域名管理如何高效结合?  如何选择高效响应式自助建站源码系统?  建站之星3.0如何解决常见操作问题?  如何在IIS中新建站点并配置端口与IP地址?  建设网站制作价格,怎样建立自己的公司网站?  如何做网站制作流程,*游戏网站怎么搭建?  如何打造高效商业网站?建站目的决定转化率  如何在服务器上三步完成建站并提升流量?  如何通过虚拟机搭建网站?详细步骤解析  C++如何使用std::optional?(处理可选值)  已有域名和空间如何搭建网站?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  ,购物网站怎么盈利呢?  股票网站制作软件,网上股票怎么开户?  如何通过主机屋免费建站教程十分钟搭建网站?  如何在VPS电脑上快速搭建网站?  如何在阿里云购买域名并搭建网站?  制作企业网站建设方案,怎样建设一个公司网站?  建站之星各版本价格是多少?  宝盒自助建站智能生成技巧:SEO优化与关键词设置指南  网站制作员失业,怎样查看自己网站的注册者? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。