Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ、Artemis等。本节中,将以ActiveMQ为例来讲解下Spring Boot与ActiveMQ的集成使用。

  在Spring Boot中,已经内置了对ActiveMQ的支持。要在Spring Boot项目中使用ActiveMQ,只需在pom.xml中添加ActiveMQ的起步依赖即可。

  添加ActiveMQ起步依赖:

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-activemq</artifactId>
  4. </dependency>

  创建消息队列对象:
  在Application.java中编写一个创建消息队列的方法,其代码如下所示。

  1. /**
  2. * 创建消息队列的方法
  3. */
  4. @Bean
  5. public Queue queue() {
  6. return new ActiveMQQueue("active.queue");
  7. }

  创建消息生产者:
  创建一个队列消息的控制器类QueueController,并在类中编写发送消息的方法

  1. package com.xc.springboot.controller;
  2.  
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.jms.core.JmsMessagingTemplate;
  5. import org.springframework.web.bind.annotation.RequestMapping;
  6. import org.springframework.web.bind.annotation.RestController;
  7.  
  8. import javax.jms.Queue;
  9.  
  10. /**
  11. * 队列消息的控制器类QueueController
  12. */
  13. @RestController
  14. public class QueueController {
  15.  
  16. @Autowired
  17. private JmsMessagingTemplate jmsMessagingTemplate;
  18.  
  19. @Autowired
  20. private Queue queue;
  21.  
  22. /**
  23. * 消息生产者
  24. */
  25. @RequestMapping("/send")
  26. public void send() {
  27. // 指定消息发送的目的地及内容
  28. jmsMessagingTemplate.convertAndSend(queue, "新发送的消息!");
  29. }
  30.  
  31. }

  创建消息监听者:
  创建一个客户控制器类CustomerController,并在类中编写监听和读取消息的方法

  1. package com.xc.springboot.controller;
  2.  
  3. import org.springframework.jms.annotation.JmsListener;
  4. import org.springframework.web.bind.annotation.RestController;
  5.  
  6. /**
  7. * 客户控制器
  8. */
  9. @RestController
  10. public class CustomerController {
  11.  
  12. /**
  13. * 监听和读取消息
  14. */
  15. @JmsListener(destination = "active.queue")
  16. public void readActiveQueue(String message) {
  17. System.out.println("接收到:" + message);
  18. }
  19. }

  在上述代码中,@JmsListener是Spring 4.1所提供的用于监听JMS消息的注解,该注解的属性destination用于指定要监听的目的地。本案例中监听的是active.queue中的消息。

  启动项目,测试应用:
  启动Spring Boot项目,在浏览器中输入地址http://localhost:8081/send后,控制台将显示所接收到的消息

  1. 接收到:新发送的消息!

  在实际开发中,ActiveMQ可能是单独部署在其他机器上的,如果要使用它,就需要实现对它的远程调用。要使用远程中的ActiveMQ其实很简单,只需在配置文件中指定ActiveMQ的远程主机地址以及服务端口号,其配置代码如下:

  1. spring.activemq.broker-url=tcp://192.168.2.100:61616

  在上述配置中,192.168.2.100是远程主机的IP地址,61616是ActiveMQ的服务端口号。

Spring Boot与ActiveMQ的集成的更多相关文章

  1. Spring Boot学习笔记——Spring Boot与ActiveMQ的集成

    Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ.Artemis等.这里以ActiveMQ为 ...

  2. 如何集成 Spring Boot 和 ActiveMQ?

    对于集成 Spring Boot 和 ActiveMQ,我们使用依赖关系. 它只需要很少的配置,并且不需要样板代码.

  3. Spring Boot入门 and Spring Boot与ActiveMQ整合

    1.Spring Boot入门 1.1什么是Spring Boot Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品.无 ...

  4. Spring Boot微服务如何集成fescar解决分布式事务问题?

    什么是fescar? 关于fescar的详细介绍,请参阅fescar wiki. 传统的2PC提交协议,会持有一个全局性的锁,所有局部事务预提交成功后一起提交,或有一个局部事务预提交失败后一起回滚,最 ...

  5. spring boot整合activemq消息中间件

    spring boot整合activemq消息中间件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi ...

  6. activeMQ入门+spring boot整合activeMQ

    最近想要学习MOM(消息中间件:Message Oriented Middleware),就从比较基础的activeMQ学起,rabbitMQ.zeroMQ.rocketMQ.Kafka等后续再去学习 ...

  7. Spring Boot与ActiveMQ整合

    Spring Boot与ActiveMQ整合 1使用内嵌服务 (1)在pom.xml中引入ActiveMQ起步依赖 <dependency> <groupId>org.spri ...

  8. Spring Boot 2.0 快速集成整合消息中间件 Kafka

    欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...

  9. spring boot 整合activemq

    1 Spring Boot与ActiveMQ整合 1.1使用内嵌服务 (1)在pom.xml中引入ActiveMQ起步依赖 <properties> <spring.version& ...

随机推荐

  1. MySQL InnoDB存储引擎事务的ACID特性

    1.前言 相信工作了一段时间的同学肯定都用过事务,也都听说过事务的4大特性ACID.ACID表示原子性.一致性.隔离性和持久性.一个很好的事务处理系统,必须具备这些标准特性: 原子性(Atomicit ...

  2. 洛谷 AT2434 JOI 公園 (JOI Park) 题解

    人生第一次AC黑题,我太感动了. 每日一题 day31 打卡 Analysis 先跑遍DJ,求出1到 i的最短路.得到每个点到 1号点的距离后,从小到大排序一遍,这时便可以枚举每个点到 1号点的距离修 ...

  3. C# HashCode

    如果两个对象的HashCode相等,可以认为两者相等.类型和值都相等. xx.GetHashCode();

  4. asp.net大文件分块上传断点续传demo

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...

  5. XMind 8 pro for Mac(思维导图软件)附序列号和破解教程【亲测可用!!】

    年后了,又到一年面试时,最近在用思维导图整理知识点,原本使用的是在线思维导图 ProcessOn,奈何免费版的个人文件数量只能有9 张,远远不能满足我的需要,所以还是使用一个本地版的吧,but依然不想 ...

  6. 多个List 或 Array 进行 合并

    1.调用 var aaa = new List<string>() { "0" }; var a1 = new List<string>() { " ...

  7. mint-ui 做省市选择组件

    省市的数据是动态的,其实不是动态的更好搞 <!-- 省市选择 --> <mt-popup v-model="popupVisible" position=&quo ...

  8. switchcase的用法

    <script> var level = prompt("请输入员工评级"); var salary = 5000; switch (level) { case &qu ...

  9. Spring boot Security 登陆安全配置

    实现的效果 访问url时,如果未登录时跳转到Login界面,要求用户登陆,如果登陆过返回请求的数据. 效果图 访问数据时,未登录返回login界面 登陆操作 登陆成功进入登出界面 登陆成功后再次访问数 ...

  10. Git的使用(4) —— 分支的概念和使用

    1. 概念 在SVN中,分支并不是很便于使用.但是在Git中,分支就变成了特别好用的功能呢,受到大多数使用者的青睐. 分支中有几个概念: (1) 分支:分支就是每一次提交创建的点连接成的线. (2) ...