• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > spring boot整合RabbitMQ(Direct模式)

spring boot整合RabbitMQ(Direct模式)

作者:牛头人 字体:[增加 减小] 来源:互联网 时间:2017-05-28

牛头人 通过本文主要向大家介绍了spring boot rabbitmq,spring rabbitmq,spring整合rabbitmq,rabbitmq springmvc,spring集成rabbitmq等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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> 
</div>

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
</div>

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);
 }
}
</div>

4.创建消息消费者Receiver。

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

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

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

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

6.创建应用主类:

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

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

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

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/]
</div>

同时,我们通过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
</div>

通过上面的示例,我们在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);
}
</div>

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

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • spring boot整合RabbitMQ实例详解(Fanout模式)
  • Spring Boot整合RabbitMQ实例(Topic模式)
  • spring boot整合RabbitMQ(Direct模式)
  • 详解spring boot集成RabbitMQ
  • spring boot整合RabbitMQ实例详解(Fanout模式)
  • Spring Boot整合RabbitMQ实例(Topic模式)
  • spring boot整合RabbitMQ(Direct模式)

相关文章

  • 2017-05-28Java连接MongoDB进行增删改查的操作
  • 2017-05-28全排列算法-递归与字典序的实现方法(Java)
  • 2017-05-28java异常处理详细介绍及实例
  • 2017-05-28Java中四种访问权限资料整理
  • 2017-05-28Java 加密解密基础分类及模式归纳整理
  • 2017-05-28Java中char[]输出不是内存地址的原因详解
  • 2017-05-28Java 多线程优先级实例详解
  • 2017-09-06Nashorn jdk8新增的ScriptEngine官方文档翻译及代码示例
  • 2017-05-28Java集合之HashMap用法详解
  • 2017-05-28Java集合框架中迭代器Iterator解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • mybatis教程之延迟加载详解
    • Java HTTP协议收发MQ 消息代码实例详解
    • 详解Spring Boot加载properties和yml配置文件
    • Java Set集合的遍历及实现类的比较
    • Java使用join方法暂停当前线程
    • Java微信公众号开发之通过微信公众号获取用户信息
    • Spring中属性注入的几种方式以及复杂属性的注入详解
    • 完美解决gson将Integer默认转换成Double的问题
    • java 中如何获取字节码文件的相关内容
    • java多线程的同步方法实例代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有