springcloudAlibaba2025.0.0.0组件版本对应关系

一、父模块

1、Spring Cloud alibaba

bash 复制代码
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-alibaba-dependencies</artifactId>
	<version>2025.0.0.0</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

<dependency>
	<groupId>org.springframework.cloud</groupId>
	<artifactId>spring-cloud-dependencies</artifactId>
	<version>2025.0.0</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

2、SpringBoot

bash 复制代码
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>3.5.5</version>
	<type>pom</type>
	<scope>import</scope>
</dependency>

3、swagger

这是SpringBoot3 + Knife4j 增强swagger UI,不用再引入springfox-swagger-ui,引入了会冲突。

bash 复制代码
<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
	<version>4.5.0</version>
</dependency>

4、数据库连接池

bash 复制代码
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.20</version>
</dependency>

5、sentinel

bash 复制代码
<dependency>
	<groupId>com.alibaba.cloud</groupId>
	<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
	<version>2025.0.0.0</version>
</dependency>

6、数据库

这个驱动的版本不等同于mysql的版本,8版本的就可以兼容mysql的8版本

bash 复制代码
<dependency>
	<groupId>com.mysql</groupId>
	<artifactId>mysql-connector-j</artifactId>
	<version>8.0.33</version>
</dependency>

7、mybatis-plus

这个一定要用boot3-start 且为3.5.x的版本

bash 复制代码
<dependency>
	<groupId>com.baomidou</groupId>
	<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
	<version>3.5.12</version>
</dependency>

8、通用的依赖(根据需要添加)

bash 复制代码
<!--minio的版本管理-->
<dependency>
	<groupId>io.minio</groupId>
	<artifactId>minio</artifactId>
	<version>8.5.6</version>
</dependency>

<!--influxdb的版本管理-->
<dependency>
	<groupId>com.influxdb</groupId>
	<artifactId>influxdb3-java</artifactId>
	<version>1.10.0</version>
</dependency>

<!--xxl-job的版本管理-->
<dependency>
	<groupId>com.xuxueli</groupId>
	<artifactId>xxl-job-core</artifactId>
	<version>3.4.2</version>
</dependency>

<dependency>
	<groupId>org.projectlombok</groupId>
	<artifactId>lombok</artifactId>
	<version>1.18.30</version>
</dependency>

<dependency>
	<groupId>cn.hutool</groupId>
	<artifactId>hutool-all</artifactId>
	<version>5.8.22</version>
</dependency>

<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>easyexcel</artifactId>
	<version>3.3.2</version>
</dependency>

<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-annotations</artifactId>
	<version>2.19.2</version>
</dependency>

二、子模块远程RPC调用注意事项

1、依赖引入

若子模块需要用openfeign rpc远程调用相关的东西,则直接在子模块中引入。

bash 复制代码
        <!-- RPC 远程调用相关 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
        </dependency>

因为父 pom 已经导入了 Spring Cloud 统一依赖管理(即一、1),不需要单独写 openfeign 版本。

而且一定要引入loadbalancer,因为新版本彻底移除了 Ribbon,Feign 底层默认依赖 Spring Cloud LoadBalancer 做服务实例负载均衡,调用远程接口时会报错:

复制代码
java.lang.IllegalStateException: No LoadBalancer found for service: xxx-service

2、scanBasePackages

如下图所示,一定要写@SpringBootApplication(scanBasePackages = {"com.cloud.zhenyu"}) 这个注解。

scanBasePackages,指定 Spring 自动扫描包范围,默认不写这个的话只扫描当前启动类所在包 + 所有子包,而被调用的api接口不在启动类模块的子包下,所以一定会报错。

而api所在模块与调用者所在模块的包名前缀都一样的,所以这里直接写的com.cloud.zhenyu。

bash 复制代码
Field influxApi in com.cloud.zhenyu.controller.xxxController required a bean of type 'com.cloud.zhenyu.api.InfluxApi' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.cloud.zhenyu.api.InfluxApi' in your configuration.

3、EnableFeignClients

作用:Spring 默认不会识别 @FeignClient 接口,加上这个注解后,Spring 启动时会扫描指定包下所有标记 @FeignClient 的 RPC 接口,动态生成代理实现类,注入 Spring 容器成为 Bean,供你 @Autowired 注入调用。

搭配 scanBasePackages /basePackages 跨模块扫描。

相关推荐
欢醉2 天前
线上惊魂:Nacos 抖动导致大面积服务掉线,我们是怎么兜底的
nacos·springcloud
爱学习的小可爱卢6 天前
SpringCloud——SkyWalking全链路监控源码深度解析
java·微服务·springcloud·skywalking
爱学习的小可爱卢6 天前
SpringCloud——SkyWalking告警规则触发WebHook全解析
java·微服务·springcloud·skywalking
X-⃢_⃢-X8 天前
四、OpenFeign远程调用
java·微服务·springboot·springcloud
欢醉10 天前
踩了个大坑!K8s 挂载目录的日志,居然也在吃容器内存?
kubernetes·springcloud
爱学习的小可爱卢10 天前
Seata AT模式:面试与项目答辩全解析
seata·springcloud
欢醉14 天前
k8s调度容器失败The node had condition: [DiskPressure]
kubernetes·springcloud
爱学习的小可爱卢15 天前
SpringCloud——微服务排错实战:从Gateway到Feign全链路解析
运维·springcloud
全栈Blue16 天前
Spring Cloud 微服务核心组件学习笔记
springcloud
欢醉17 天前
一次P0 故障:微服务线程数莫名暴涨 10 倍,线程问题踩坑
springboot·线程·springcloud