博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot学习笔记——Spring Boot与ActiveMQ的集成
阅读量:4652 次
发布时间:2019-06-09

本文共 2826 字,大约阅读时间需要 9 分钟。

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

一、使用内嵌的ActiveMQ

1.添加ActiveMQ起步依赖

在项目的pom.xml中添加ActiveMQ的依赖信息:

org.springframework.boot
spring-boot-starter-activemq
2.0.2.RELEASE

或者:

org.springframework.boot
spring-boot-starter-activemq

因为我的项目用的就是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@EnableCachingpublic 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;/* * 队列消息控制器 */@RestControllerpublic 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;/* * 客户控制器 */@RestControllerpublic 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的管理界面。

转载于:https://www.cnblogs.com/zifeiy/p/9063271.html

你可能感兴趣的文章
ArcEngine开发之自定义工具
查看>>
SQL视频总结
查看>>
P4878 道路修建-美国
查看>>
dp练习
查看>>
vim
查看>>
maze_travel的隐私声明
查看>>
对正则表达式又重新学了一遍,笔记方便以后查阅
查看>>
UIKit应用 - Swift 版本: 3.让UITableViewCell的背景色渐变
查看>>
Java反射
查看>>
building tool
查看>>
JS中for循环输出三角形
查看>>
字节对齐2
查看>>
与Win8之磁盘活动时间100%斗争心得
查看>>
Matrix: android 中的Matrix (android.graphics.Matrix) (转)
查看>>
Android中处理崩溃异常
查看>>
Day7—socket进阶
查看>>
只读数据文件损坏恢复
查看>>
转过来的,可以看下
查看>>
windows搭建SVN服务MD版
查看>>
Java私塾的一些基础练习题(一)
查看>>