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

升级springboot-starter-parent至3.7.5后出现javax.validation包不存在问题

Spring Boot 3.7.5升级后javax.validation编译错误解决方案

问题原因

Spring Boot 3.x版本基于Jakarta EE 9规范,所有原javax.*前缀的Java EE API已全部迁移至jakarta.*命名空间,包括JSR-380校验框架的javax.validation包,因此你项目中仍使用javax.validation相关类会导致包找不到的编译错误。

解决步骤

  1. 替换Java类中的导入路径
    把所有Java文件里的import javax.validation.*替换为jakarta.validation.*,以你的ValidateParamValue.java为例:
    原导入:

    import javax.validation.Constraint;
    import javax.validation.Payload;
    

    修改后:

    import jakarta.validation.Constraint;
    import jakarta.validation.Payload;
    

    所有涉及javax.validation的类(比如ConstraintValidator等)都需要同步替换包路径。

  2. 调整依赖配置
    Spring Boot 3.x提供了适配Jakarta的校验starter,无需手动引入旧版的hibernate-validator或javax.validation-api。确保你的Maven/Gradle依赖中只保留:
    Maven:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    

    Gradle:

    implementation 'org.springframework.boot:spring-boot-starter-validation'
    

    若之前手动添加过javax.validation-api或旧版hibernate-validator,请直接删除这些依赖,避免版本冲突。

  3. 清理并重新编译项目
    执行清理命令清除旧的编译产物,再重新构建:
    Maven:

    mvn clean install
    

    Gradle:

    ./gradlew clean build
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 23:12:39