You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot 3.0.0升级到3.3.0时JdbcClient类找不到报错求助

解决Spring Boot 3.3.0升级后找不到JdbcClient类的问题

核心问题:依赖版本冲突

你的pom.xml里dependencyManagement块仍在导入Spring Boot 3.0.0的依赖约束,这会强制大部分Spring相关依赖停留在3.0.0对应的版本(Spring Framework 6.0.x),而JdbcClient是Spring Framework 6.1才新增的类,Spring Boot 3.3.0依赖的是Spring Framework 6.1,版本冲突导致找不到该类。

具体修复步骤

1. 删除旧的dependencyManagement配置

直接移除pom中这段配置:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>3.0.0</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Spring Boot的parent已经统一管理所有依赖版本,无需手动导入该约束。

2. 移除spring-boot-starter-data-jpa的手动版本

spring-boot-starter-data-jpa的版本由parent统一管控,手动指定版本多余且可能引发冲突,删除version标签:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
    <!-- 删除此行 -->
    <!-- <version>3.3.0</version> -->
</dependency>

3. 替换不兼容的Springfox依赖

Springfox 2.8.0完全不兼容Spring Boot 3.x(Spring Boot 3基于Jakarta EE,而旧版Springfox仅支持Java EE),建议替换为Spring官方维护的SpringDoc:

<!-- 移除所有springfox依赖 -->
<!-- <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.8.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-bean-validators</artifactId>
    <version>2.8.0</version>
</dependency> -->

<!-- 添加适配Spring Boot 3.x的SpringDoc依赖 -->
<dependency>
    <groupId>org.springdoc</groupId>
    <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
    <version>2.5.0</version>
</dependency>

替换后访问http://localhost:8080/swagger-ui.html即可查看接口文档,使用逻辑与Springfox基本一致。

4. 移除手动指定的hibernate-validator版本

Spring Boot 3.3.0已内置兼容的hibernate-validator版本(8.x,适配Jakarta Validation 3.0),手动指定的7.0.5版本针对Java EE,会引发冲突,直接删除该依赖:

<!-- 删除此行 -->
<!-- <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>7.0.5.Final</version>
</dependency> -->

5. 清理并重新构建

执行以下命令清理本地依赖缓存并重新构建项目:

mvn clean install

之后再运行mvn spring-boot:run即可正常启动。

额外注意点

  • spring-boot-maven-plugin配置的mainClass为com.example.hero.ExampleSuperHeroesApplication,但properties中的start-class是com.example.hero.SuperHeroesApplication,需确保两者一致,否则可能导致启动失败。
  • Spring Boot 3.x要求Java版本至少为17,你的配置中已指定java.version=17,符合要求。

内容的提问来源于stack exchange,提问作者Frederic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 01:02:33