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 跨模块扫描。

相关推荐
地瓜伯伯1 个月前
从MESI缓存一致性协议讲透synchronized的底层
java·spring boot·spring·spring cloud·微服务·springcloud
星辰_mya1 个月前
openfeign之在回首
java·架构·dubbo·springcloud·openfeign
skywalker_111 个月前
SpringBoot速通(实战教学)
java·spring boot·redis·rpc·ssm·mybatis-plus
苏渡苇2 个月前
Seata 番外篇:使用 docker-compose 部署 Seata Server(TC)及 K8S 部署 Seata 高可用
spring boot·docker·微服务·容器·kubernetes·seata·springcloud
段ヤシ.2 个月前
回顾Java知识点,面试题汇总Day17(持续更新)
java·springboot·spring security·shiro·mybatis-plus·jdbctemplate·spring data jpa
Mahir082 个月前
MyBatis 分页与插件深度解密:从插件机制到三大分页方案原理全解
java·后端·mybatis·mybatis-plus·大厂面试题
谷哥的小弟2 个月前
图文详解Spring Boot整合MyBatisPlus(附源码)
mybatis·源码·springboot·mybatis-plus·整合
牧羊狼的狼2 个月前
springcloud 各中间件集群部署形态说明
springcloud·集群部署
DN金猿2 个月前
spring.cloud.nacos.discovery.server-addr和spring.cloud.nacos.server-addr区别
java·开发语言·nacos·springcloud·sca