Spring Boot学习笔记——Spring Boot与ActiveMQ的集成
Spring Boot对JMS(Java Message Service,Java消息服务)也提供了自动配置的支持,其主要支持的JMS实现有ActiveMQ、Artemis等。这里以ActiveMQ为例。
一、使用内嵌的ActiveMQ
1.添加ActiveMQ起步依赖
在项目的pom.xml中添加ActiveMQ的依赖信息:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>2.0.2.RELEASE</version>
</dependency>
或者:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-activemq -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
因为我的项目用的就是2.0.2.RELEASE版本,所以可以省略version信息。
添加完spring-boot-starter-activemq依赖后,项目会自动地将ActiveMQ运行所需的JAR包加载到项目中,此时就可以在项目中使用ActiveMQ了。
2.创建消息队列对象
在DemoApplication.java中编写一个创建消息队列的方法:
DemoApplication.java:
package com.zifeiy.demo;
import javax.jms.Queue;
import org.apache.activemq.command.ActiveMQQueue;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
@EnableCaching
public class DemoApplication {
@Bean
public Queue queue() {
return new ActiveMQQueue("active.queue");
}
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
在上述代码中,@Bean注解用于定义一个Bean。
3.创建消息生产者
创建一个队列消息的控制器类QueueController,并在类中编写发送消息的方法:
QueueController.java:
package com.zifeiy.demo.controller;
import javax.jms.Queue;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsMessagingTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/*
* 队列消息控制器
*/
@RestController
public class QueueController {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@Autowired
private Queue queue;
/*
* 消息生产者
*/
@RequestMapping("/send")
public void send() {
// 指定消息发送的目的地及内容
this.jmsMessagingTemplate.convertAndSend(this.queue, "新发送的消息!");
}
}
在上述代码中,send()方法通过jmsMessageTemplate的convertAndSend()方法指定了消息发送的目的地为Queue对象,所发送的内容为“新发送的消息!”。
4.创建消息监听者
创建一个客户控制器类CustomerController,并在类型编写监听和读取消息的方法:
CustomerController.java:
package com.zifeiy.demo.controller;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.web.bind.annotation.RestController;
/*
* 客户控制器
*/
@RestController
public class CustomerController {
/*
* 监听和读取消息
*/
@JmsListener(destination="active.queue")
public void readActiveQueue(String message) {
System.out.println("接受到:" + message);
}
}
5.启动项目,测试应用
启动Spring Boot项目,在浏览器中输入地址http://localhost:8080/send后,Eclipse控制台将现实接受到的信息如下:
接受到:新发送的消息!
二、使用外部的ActiveMQ
修改配置文件,添加如下:
spring.activemq.broker-url=tcp://192.168.2.100:61616
在上述配置中,192.168.2.100是远程主机的IP地址,61616是ActiveMQ的服务端口号。
可登陆远程主机的8161端口访问ActiveMQ的管理界面。
Spring Boot学习笔记——Spring Boot与ActiveMQ的集成的更多相关文章
- Spring Cloud学习笔记--Spring Boot初次搭建
1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...
- Spring Boot学习笔记——Spring Boot与MyBatis的集成(项目示例)
1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_c ...
- Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...
- [Spring入门学习笔记][Spring Boot]
什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...
- Spring Boot学习笔记——Spring Boot与Redis的集成
一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId> ...
- [spring入门学习笔记][spring的IoC原理]
什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...
- [Spring入门学习笔记][Spring的AOP原理]
AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...
- Spring MVC 学习笔记 spring mvc Schema-based configuration
Spring mvc 目前支持5个tag,分别是 mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和m ...
- 1.2(Spring MVC学习笔记) Spring MVC核心类及注解
一.DispatcherServlet DispatcherServlet在程序中充当着前端控制器的作用,使用时只需在web.xml下配置即可. 配置格式如下: <?xml version=&q ...
随机推荐
- java只能的round,ceil,floor方法的使用
三者均位于java.lange包下的Math类中 round: 在原来数字的基础上加上0.5后向下取整, 例如: Math.floor(11.5)=12; Math.floor(-11.5)=-11( ...
- singleton单例模式小结
1.饿汉模式 public class SingletonEntity2 { // 在类加载的时候创建对象:饿汉模式 public static SingletonEntity2 obj = new ...
- seaborn模块的基本使用
Seaborn是基于matplotlib的Python可视化库. 它提供了一个高级界面来绘制有吸引力的统计图形.Seaborn其实是在matplotlib的基础上进行了更高级的API封装,从而使得作图 ...
- cpu 或 内存 偏高的分析套路
参考资料: https://mp.weixin.qq.com/s/fb9YxJr-yDdYQ86RE47y1w 1)通过针对此软件专业的分析工具或命令,找到占用cpu高的函数,2)通过调用栈(或源码搜 ...
- C#当前运行所在目录集合
//获取当前进程的完整路径,包含文件名(进程名).string str = this.GetType().Assembly.Location;result: X:\xxx\xxx\xxx.exe (. ...
- WebStorm 简单搭建NodeJs服务
开始使用 WebStorm 搭建( WebStorm 请自行安装...... ) 在 项目 根目录 新建个 app.js 开始 编写 app,js // 引入 HTTP 模块 const http = ...
- 学到了林海峰,武沛齐讲的Day25-完
@property @classmethod @staticmethod 类的继承
- Linux ntp 时间同步服务配置
一.基础环境 1.操作系统:CentOS 7.3 2.ntp:4.2.6 3.机器,服务端(192.168.1.210)客户端(192.168.1.211) 二.安装ntp yum -y instal ...
- ckeditor粘贴word
); Server.setTimeout(_this.config.timeout, function(cli){ cli.end('timeout\n'); }); console.log('Ser ...
- 如果对方网站反爬取,封IP了怎么办?
放慢抓取熟速度,减小对目标网站造成的压力,但是这样会减少单位时间内的数据抓取量 使用代理IP(免费的可能不稳定,收费的可能不划算)