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的集成的更多相关文章

  1. Spring Cloud学习笔记--Spring Boot初次搭建

    1. Spring Boot简介 初次接触Spring的时候,我感觉这是一个很难接触的框架,因为其庞杂的配置文件,我最不喜欢的就是xml文件,这种文件的可读性很不好.所以很久以来我的Spring学习都 ...

  2. Spring Boot学习笔记——Spring Boot与MyBatis的集成(项目示例)

    1.准备数据库环境 # 创建数据库 CREATE DATABASE IF NOT EXISTS zifeiydb DEFAULT CHARSET utf8 COLLATE utf8_general_c ...

  3. Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目

    最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...

  4. [Spring入门学习笔记][Spring Boot]

    什么是Spring Boot Spring Boot正是在这样的一个背景下被抽象出来的开发框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速.敏捷地开发新一代基于Spring框架 ...

  5. Spring Boot学习笔记——Spring Boot与Redis的集成

    一.添加Redis缓存 1.添加Redis起步依赖 在pom.xml中添加Spring Boot支持Redis的依赖配置,具体如下: <dependency> <groupId> ...

  6. [spring入门学习笔记][spring的IoC原理]

    什么叫IoC 控制反转(Inversion of Control,缩写为IoC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度.其中最常见的方式叫做依赖注入(Dependency ...

  7. [Spring入门学习笔记][Spring的AOP原理]

    AOP是什么? 面向切面编程 软件工程有一个基本原则叫做“关注点分离”(Concern Separation),通俗的理解就是不同的问题交给不同的部分去解决,每部分专注于解决自己的问题.这年头互联网也 ...

  8. Spring MVC 学习笔记 spring mvc Schema-based configuration

    Spring mvc 目前支持5个tag,分别是 mvc:annotation-driven,mvc:interceptors,mvc:view-controller, mvc:resources和m ...

  9. 1.2(Spring MVC学习笔记) Spring MVC核心类及注解

    一.DispatcherServlet DispatcherServlet在程序中充当着前端控制器的作用,使用时只需在web.xml下配置即可. 配置格式如下: <?xml version=&q ...

随机推荐

  1. java中的AIO

    AIO(异步非阻塞)AIO采用了Proactor模式,AIO与NIO的不同之处在于当AIO在进行读写操作时,不用先等通知,可直接调用相应的read/write方法,这两种方法均为异步的,对于读操作而言 ...

  2. 利用selenium自动化测试样例一

    import argparse import logging import psycopg2 import datetime,time import os,sys from selenium impo ...

  3. sysobjects统计数据库的各类结构数据

    概要: 查询表.以及表中的行数 SELECT a.name,b.rows FROM sysobjects a INNER JOIN sysindexes b ON a.id=b.id WHERE a. ...

  4. Greenplum table 之 外部表

    转载自: https://www.cnblogs.com/kingle-study/p/10552097.html 一.外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发 ...

  5. 实验1C语言开发环境使用和数据类型、运算符、表达式

    # include <stdio.h> int main() { char ch; printf("输入一个字符:\n"); scanf("%c", ...

  6. vue-cli3.0的记录

    页面打包的话,需要在根目录创建一个js文件 vue.confing.js 打包app的话,在dist里面只拿自己需要的静态文件

  7. (转)mysql更改数据目录

    mysql 更改默认数据目录 http://www.cnblogs.com/chenny7/p/3642363.html 本文主要介绍在CentOS下通过yum命令安装MySQL之后,如何移动默认数据 ...

  8. awk如何传递外部变量?

    第一种: [root@master yjt]# var=1 [root@master yjt]# echo |awk -v value=$var '{print value}' 1 第二种: [roo ...

  9. dubbo zookeeper图解入门配置

    这次主要是对dubbo 和zookeeper的配置做个记录,以便以后自己忘记了,或者踩的坑再次被踩 快速阅读 zookeerer类似 springcloud中的Eureka都做为注册中心,用srpin ...

  10. GDB使用——pwn相关

    目录 寄存器 内存 peda插件命令 x命令详解 后续补充 内容来源 寄存器 1.查看寄存器 2.查看所有寄存器 3.查看某个寄存器 4.修改寄存器的值 内存 1.修改内存值 2.搜索内存 peda插 ...