spring-boot 3.X版本整合RocketMq的詳細過程
版本信息
先把該次整合的版本信息列如下:
| spring-boot | spring-cloud | rocketmq-spring-boot-starter | rocketmq-client | rocketmq |
|---|---|---|---|---|
| 3.0.13 | 2022.0.5 | 2.2.3 | 4.9.8 | 4.9.8 |
版本信息是如何選擇的呢?看rocketMq官網(wǎng)springcloud alibaba版本聲明

rocketMq我用的是最新的4.X版本4.9.8
本地啟動rocketMq服務端
這塊你們找文章看。我是從github上fork后下載到本地。使用idea啟動nameSrv和broker
構建測試工程
先創(chuàng)建父工程,用于pom的依賴繼承

配置屬性
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<revision>0.0.1</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.test.skip>false</maven.test.skip>
<maven.javadoc.skip>true</maven.javadoc.skip>
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
<spring-boot-dependencies.version>3.0.13</spring-boot-dependencies.version>
<spring.cloud-version>2022.0.5</spring.cloud-version>
<com.alibaba.cloud.version>2022.0.0.0</com.alibaba.cloud.version>
<knife4j.version>2.0.5</knife4j.version>注意使用spring-boot 3.x版本后,jdk必須要17以上。所以本地需要安裝jdk17
增加父工程依賴
<dependencyManagement>
<dependencies>
<dependency>
<!-- Import dependency management from Spring Boot -->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot-dependencies.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring.cloud-version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${com.alibaba.cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>創(chuàng)建子工程
使用spring-boot的初始化initializr創(chuàng)建工程并下載放到父工程子目錄下
修改pom文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.hjq</groupId>
<artifactId>sunshine-all</artifactId>
<version>${revision}</version>
<relativePath>../pom.xml</relativePath>
</parent>
<!-- <parent>-->
<!-- <groupId>org.springframework.boot</groupId>-->
<!-- <artifactId>spring-boot-starter-parent</artifactId>-->
<!-- <version>3.2.11</version>-->
<!-- <relativePath/> <!– lookup parent from repository –>-->
<!-- </parent>-->
<groupId>com.hjq.sunshine</groupId>
<artifactId>demo</artifactId>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
</exclusion>
</exclusions>
<version>2.2.3</version>
</dependency>
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.9.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>增加生產(chǎn)者消費者啟動配置

新增application.yml文件
rocketmq:
producer:
group: myProducerGroup
name-server: 127.0.0.1:9876新增生產(chǎn)者

@Component
@Log
public class FirstProduce implements CommandLineRunner {
@Autowired
private RocketMQTemplate rocketMQTemplate;
@Override
public void run(String... args) throws Exception {
log.info("1111");
SendResult result = rocketMQTemplate.syncSend("TestTopic", "1111");
log.info(JSONObject.toJSONString(result));
log.info("2222");
}
}新增消費者
package com.hjq.sunshine.demo.rocketmq;
import lombok.extern.java.Log;
import org.apache.rocketmq.spring.annotation.ConsumeMode;
import org.apache.rocketmq.spring.annotation.MessageModel;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.Message;
import org.springframework.stereotype.Service;
import java.util.function.Consumer;
/**
* @Description
* @Author hjq
* @Date 2024/11/21
*/
@Service
@Log
@RocketMQMessageListener(consumerGroup = "MyConsumer", topic = "TestTopic",
consumeMode = ConsumeMode.CONCURRENTLY, messageModel = MessageModel.BROADCASTING)
public class FirstConsumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
log.info("rece msg: " + message);
}
}注意事項。使用spring-boot 3.x版本,rocketmq-spring-boot-starter的自動配置會有bug,提示rocketMQTemplate沒有bean注入。解決方案參考未注入bean
啟動后測試
啟動就可以看到如下,正常的生產(chǎn)和消費。

到此這篇關于spring-boot 3.X版本整合RocketMq的詳細過程的文章就介紹到這了,更多相關spring-boot 3.X整合RocketMq內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
使用Java自帶的mail?API實現(xiàn)郵件發(fā)送功能全過程
電子郵件的應用非常廣泛,例如在某網(wǎng)站注冊了一個賬戶,自動發(fā)送一封歡迎郵件,通過郵件找回密碼,自動批量發(fā)送活動信息等,下面這篇文章主要給大家介紹了關于如何使用Java自帶的mail?API實現(xiàn)郵件發(fā)送功能的相關資料,需要的朋友可以參考下2023-04-04
Spring AspectJ 實現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實現(xiàn)AOP的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-01-01
springboot+WebMagic+MyBatis爬蟲框架的使用
本文是對spring boot+WebMagic+MyBatis做了整合,使用WebMagic爬取數(shù)據(jù),然后通過MyBatis持久化爬取的數(shù)據(jù)到mysql數(shù)據(jù)庫。具有一定的參考價值,感興趣的可以了解一下2021-08-08
TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析
這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價值,需要的朋友可以了解下。2017-11-11

