Spring Boot与JMS消息中间件的集成

Spring Boot与JMS消息中间件的集成

大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们来探讨一下如何在Spring Boot中集成JMS(Java Message Service)消息中间件。

一、JMS简介

JMS是Java平台中的一项消息传递API,用于在两个应用程序或分布式系统之间发送消息。它提供了一种异步通信机制,可以提高系统的可扩展性和解耦性。常见的JMS消息中间件包括ActiveMQ、RabbitMQ和IBM MQ。

二、Spring Boot集成ActiveMQ

1. 引入ActiveMQ依赖

在pom.xml文件中添加ActiveMQ的依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-broker</artifactId>
    <version>5.16.3</version>
</dependency>
2. 配置ActiveMQ连接

在application.properties文件中配置ActiveMQ连接信息:

properties 复制代码
spring.activemq.broker-url=tcp://localhost:61616
spring.activemq.user=admin
spring.activemq.password=admin
3. 创建消息生产者
java 复制代码
package cn.juwatech.jms;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.stereotype.Component;

@Component
public class MessageProducer {

    @Autowired
    private JmsTemplate jmsTemplate;

    public void sendMessage(String destination, String message) {
        jmsTemplate.convertAndSend(destination, message);
    }
}
4. 创建消息消费者
java 复制代码
package cn.juwatech.jms;

import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;

@Component
public class MessageConsumer {

    @JmsListener(destination = "test.queue")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}
5. 启用JMS监听

在Spring Boot应用主类中添加@EnableJms注解:

java 复制代码
package cn.juwatech;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jms.annotation.EnableJms;

@SpringBootApplication
@EnableJms
public class JmsApplication {
    public static void main(String[] args) {
        SpringApplication.run(JmsApplication.class, args);
    }
}

三、Spring Boot集成RabbitMQ

1. 引入RabbitMQ依赖

在pom.xml文件中添加RabbitMQ的依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
2. 配置RabbitMQ连接

在application.properties文件中配置RabbitMQ连接信息:

properties 复制代码
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
3. 创建消息生产者
java 复制代码
package cn.juwatech.rabbitmq;

import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class RabbitMQProducer {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    public void sendMessage(String exchange, String routingKey, String message) {
        rabbitTemplate.convertAndSend(exchange, routingKey, message);
    }
}
4. 创建消息消费者
java 复制代码
package cn.juwatech.rabbitmq;

import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

@Component
public class RabbitMQConsumer {

    @RabbitListener(queues = "test.queue")
    public void receiveMessage(String message) {
        System.out.println("Received message: " + message);
    }
}
5. 配置RabbitMQ队列、交换机和绑定
java 复制代码
package cn.juwatech.rabbitmq;

import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitMQConfig {

    @Bean
    public Queue queue() {
        return new Queue("test.queue", false);
    }

    @Bean
    public TopicExchange exchange() {
        return new TopicExchange("test.exchange");
    }

    @Bean
    public Binding binding(Queue queue, TopicExchange exchange) {
        return BindingBuilder.bind(queue).to(exchange).with("test.routingkey");
    }
}

四、总结

通过本文的介绍,我们了解了如何在Spring Boot中集成ActiveMQ和RabbitMQ作为JMS消息中间件。通过这些配置和代码示例,可以轻松地在Spring Boot应用中实现消息的发送和接收,提升系统的可扩展性和解耦性。

相关推荐
caoerzhong1 分钟前
跨境海外仓怎么管:JeeWMS 开源 Java 仓库管理系统打通头程、海外仓与尾程
java·开发语言·开源
MayBaymax7 分钟前
Elasticsearch 原理与用法
java·elasticsearch
hsfxuebao8 分钟前
Harness工程
后端·架构
马剑威(威哥爱编程)9 分钟前
【AI全栈后端12-02】Spring Boot 跑通第一个 AI 对话接口:HR 政策问答机器人实战
java·人工智能·spring boot·机器人
暗夜行者之光11 分钟前
LangGraph 实战:构建“自我修正”的代码生成 Agent
后端
IT枫斗者枫哥11 分钟前
AI返回合法JSON,字段就可信吗?给抽取结果补一道业务校验
java·人工智能·后端
用户31268748772013 分钟前
Java IO/NIO/AIO 演进:从 BIO 到 Netty 的底层逻辑
java
IT枫斗者枫哥15 分钟前
同一个requestId换了参数,为什么不能直接返回旧结果?
java·后端
天天被压力16 分钟前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #06】Python实时行情总报错?五档盘口+逐笔一次跑通
java·人工智能·python
溪语流沙23 分钟前
Django + Vue电商项目第005讲:后端骨架|Django初始化、配置分层与DRF接入
vue.js·后端·python·django