基于JMS的ActiveMQ整合SpringBoot

本文介绍了消息队列MQ的作用,重点讲解了Java消息服务JMS和开源消息中间件Apache ActiveMQ。详细阐述了ActiveMQ的安装过程,并展示了如何在SpringBoot项目中整合ActiveMQ,包括添加依赖、配置及创建消息发送和接收组件。最后,通过测试类演示了消息的发送和接收。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、消息队列MQ(Message Queue)

参考书籍:《Spring Boot+Vue全栈开发实战》

消息队列( Message Queue )是种进程间或者线程间的异步通信方式,消息生产者在产生消息后,会将消息保存在消息队列中,直到消息消费者来取走它 ,即消息的发送者和接收者不需要同时与消息队列交互,使用消息队列可以有效实现服务的解耦,并提高系统的可靠性以及可扩展性。

1. JMS(Java Message Service)

JMS(Java Message Service)Java消息服务,字面上来看,是仅支持Java平台,消息服务,无非就是对外提供服务,也就是提供API。它通过统一JAVA API层面的标准,使得多个客户端可以通过JMS进行交互,大部分消息中间件提供商都对JMS提供支持,JMS和ActiveMQ的关系就像JDBC和JDBC驱动的关系。JMS包括两种消息模型:点对点和发布者/订阅者。

2.ActiveMQ简介

Apache ActiveMQ是个开源的消息中间件,它不仅完全支持 JMS1.1规范,而且支持多种编程语言,同时还提供了对spring框架的支持,以及集群的支持。

3. ActiveMQ安装

ActiveMQ都是安装在Linux上的,因此,本案例的安装环境为CentOS 7, ActiveMQ版本为15.4.14 ,安装步骤如下(注意,要运行ActiveMQ,CentOS 上必须安装 Java 运行环境)

# 1.下载ActiveMQ
wget http://mirrors.hust.edu.cn/apache//activemq/5.15.14/apache-activemq-5.15.14-bin.tar.gz

# 2.解压下载文件
tar -zxvf apache-activemq-5.15.14-bin.tar.gz

# 3.启动ActiveMQ
cd apache-a
ctivemq-5.15.14
cd bin/
./activemq start

# 查看ActiveMQ的状态
./activemq status
# 停止ActiveMQ
./activemq stop

启动成功后,在浏览器输入http://localhost:8161,8161ActiveMQ 默认端口号,这时候需要进行登录,默认账号密码都是admin,登录成功后如下:

点击"Manage ActiveMQ broker"链接进入管理员控制台,如下:

4. ActiveMQ整合SpringBoot

由于 JMS 是一套标准,因此 Spring Boot 整合 JMS 必然就是整合 JMS 的某一个实现,本案例以ActiveMQ 为例来看 Spring Boot 如何进行整合。

Spring Boot ActiveMQ 置提供了相关的“ Starter ”,因此整合非常容易。首先创建 Spring Boot 项目,添加 ActiveMQ 依赖,pom.xml代码如下:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>

配置文件application.yml如下:

spring:
  activemq:
    # 配置broker地址,默认端口为61616
    broker-url: tcp://localhost:61616
    packages:
      # 支持发送对象消息
      trust-all: true
    # ActiveMQ的账号和密码
    user: admin
    password: admin

自定义消息类,如下:

public class Message implements Serializable {

    private String content;
    private Date date;
 	
    // 省略get set toString...
}

接下来在项目创建一个Jms组件,如下:

@Component
public class JmsComponent {

    // spring提供的消息发送模板
    @Autowired
    JmsMessagingTemplate jmsMessagingTemplate;

    /**
     * 消息发送,目标为"target"的消费者将接收到该消息
     * @param msg
     */
    public void send(Message msg) {
        jmsMessagingTemplate.convertAndSend(new ActiveMQQueue("target"), msg);
    }

    /**
     * 消息消费者订阅的目标为"target"
     * @param msg
     */
    @JmsListener(destination = "target")
    public void receive(Message msg) {
        System.out.println("receive:" + msg);
    }
}

测试类中调用JmsComponent组件进行消息发送,如下:

@SpringBootTest
class ActivemqApplicationTests {

    @Autowired
    JmsComponent jmsComponent;

    @Test
    void contextLoads() {
        // 实例化自定义消息类
        Message msg = new Message();
        msg.setContent("hello activemq...");
        msg.setDate(new Date());
        // 发送消息
        jmsComponent.send(msg);
    }

}

成功后输出如下:

在控制面板中可以看到发送的消息个数:

### IntelliJ IDEA 中通义 AI 功能介绍 IntelliJ IDEA 提供了一系列强大的工具来增强开发体验,其中包括与通义 AI 相关的功能。这些功能可以帮助开发者更高效地编写代并提高生产力。 #### 安装通义插件 为了使用通义的相关特性,在 IntelliJ IDEA 中需要先安装对应的插件: 1. 打开 **Settings/Preferences** 对话框 (Ctrl+Alt+S 或 Cmd+, on macOS)。 2. 导航到 `Plugins` 页面[^1]。 3. 在 Marketplace 中搜索 "通义" 并点击安装按钮。 4. 完成安装后重启 IDE 使更改生效。 #### 配置通义服务 成功安装插件之后,还需要配置通义的服务连接信息以便正常使用其提供的各项能力: - 进入设置中的 `Tools | Qwen Coding Assistant` 菜单项[^2]。 - 填写 API Key 和其他必要的认证参数。 - 测试连接以确认配置无误。 #### 使用通义辅助编程 一旦完成上述准备工作,就可以利用通义来进行智能编支持了。具体操作如下所示: ##### 自动补全代片段 当输入部分语句时,IDE 将自动提示可能的后续逻辑,并允许一键插入完整的实现方案[^3]。 ```java // 输入 while 循环条件前半部分... while (!list.isEmpty()) { // 激活建议列表选择合适的循环体内容 } ``` ##### 解释现有代含义 选中某段复杂的表达式或函数调用,右键菜单里会有选项可以请求通义解析这段代的作用以及优化意见。 ##### 生产测试案例 对于已有的业务逻辑模块,借助于通义能够快速生成单元测试框架及初始断言集,减少手动构建的成本。 ```python def test_addition(): result = add(2, 3) assert result == 5, f"Expected 5 but got {result}" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值