欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程

 更新時(shí)間:2024年11月25日 12:15:08   作者:chudaxiakkk  
本文詳細(xì)介紹了如何使用Spring Boot和RocketMQ進(jìn)行整合,并提供了一個(gè)簡(jiǎn)單的示例工程,描述了如何本地啟動(dòng)RocketMQ服務(wù)端,并使用IntelliJ IDEA創(chuàng)建和配置了一個(gè)Spring Boot項(xiàng)目,包含了生產(chǎn)者和消費(fèi)者,并解決了在Spring Boot 3.x版本中RocketMQTemplate沒(méi)有bean注入的問(wèn)題

版本信息

先把該次整合的版本信息列如下:

spring-bootspring-cloudrocketmq-spring-boot-starterrocketmq-clientrocketmq
3.0.132022.0.52.2.34.9.84.9.8

版本信息是如何選擇的呢?看rocketMq官網(wǎng)springcloud alibaba版本聲明

rocketMq我用的是最新的4.X版本4.9.8

本地啟動(dòng)rocketMq服務(wù)端

這塊你們找文章看。我是從github上fork后下載到本地。使用idea啟動(dòng)nameSrv和broker

構(gòu)建測(cè)試工程

先創(chuàng)建父工程,用于pom的依賴?yán)^承

配置屬性

    <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/> &lt;!&ndash; lookup parent from repository &ndash;&gt;-->
<!--	</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)者消費(fèi)者啟動(dòng)配置

新增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");
    }
}

新增消費(fèi)者

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);
    }
}

注意事項(xiàng)。使用spring-boot 3.x版本,rocketmq-spring-boot-starter的自動(dòng)配置會(huì)有bug,提示rocketMQTemplate沒(méi)有bean注入。解決方案參考未注入bean

啟動(dòng)后測(cè)試

啟動(dòng)就可以看到如下,正常的生產(chǎn)和消費(fèi)。

到此這篇關(guān)于spring-boot 3.X版本整合RocketMq的詳細(xì)過(guò)程的文章就介紹到這了,更多相關(guān)spring-boot 3.X整合RocketMq內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用Java自帶的mail?API實(shí)現(xiàn)郵件發(fā)送功能全過(guò)程

    使用Java自帶的mail?API實(shí)現(xiàn)郵件發(fā)送功能全過(guò)程

    電子郵件的應(yīng)用非常廣泛,例如在某網(wǎng)站注冊(cè)了一個(gè)賬戶,自動(dòng)發(fā)送一封歡迎郵件,通過(guò)郵件找回密碼,自動(dòng)批量發(fā)送活動(dòng)信息等,下面這篇文章主要給大家介紹了關(guān)于如何使用Java自帶的mail?API實(shí)現(xiàn)郵件發(fā)送功能的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java8?Optional常用方法使用場(chǎng)景分析

    Java8?Optional常用方法使用場(chǎng)景分析

    這篇文章主要介紹了Java8?Optional常用方法使用場(chǎng)景,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Java I/O中I/O流的典型使用方式詳解

    Java I/O中I/O流的典型使用方式詳解

    這篇文章主要介紹了Java I/O中I/O流的典型使用方式詳解,盡管可以通過(guò)不同的方式組合IO流類(lèi),但我們可能也就只用到其中的幾種組合。下面的例子可以作為典型的IO用法的基本參考,,需要的朋友可以參考下
    2019-06-06
  • Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎

    Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎

    這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • springboot+WebMagic+MyBatis爬蟲(chóng)框架的使用

    springboot+WebMagic+MyBatis爬蟲(chóng)框架的使用

    本文是對(duì)spring boot+WebMagic+MyBatis做了整合,使用WebMagic爬取數(shù)據(jù),然后通過(guò)MyBatis持久化爬取的數(shù)據(jù)到mysql數(shù)據(jù)庫(kù)。具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-08-08
  • Spring?Integration概述與怎么使用詳解

    Spring?Integration概述與怎么使用詳解

    公司項(xiàng)目需要用到spring integration,而網(wǎng)上關(guān)于spring integration的有價(jià)值的參考資料比較少,下面這篇文章主要給大家介紹了關(guān)于Spring?Integration概述與怎么使用的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析

    TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析

    這篇文章主要介紹了TCP/IP協(xié)議中三次握手四次揮手的原理及流程分析,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-11-11
  • mybatis-plus在yml中配置詳解

    mybatis-plus在yml中配置詳解

    本文主要介紹了mybatis-plus在yml中配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • SpringBoot使用外置的Servlet容器的方法步驟

    SpringBoot使用外置的Servlet容器的方法步驟

    SpringBoot 是一個(gè)非常流行的 Java 開(kāi)發(fā)框架,它提供了一個(gè)簡(jiǎn)單而強(qiáng)大的方式來(lái)創(chuàng)建基于 Servlet 容器的 Web 應(yīng)用程序,本文將介紹 SpringBoot 中如何使用 Servlet 容器,需要的朋友可以參考下
    2024-12-12
  • IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的詳細(xì)流程

    IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的詳細(xì)流程

    這篇文章主要介紹了IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-10-10

最新評(píng)論