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

Spring Boot 3.0编译报错:package javax.validation does not exist 如何解决?

解决Spring Boot 3.0.1中javax.validation does not exist编译错误

问题原因

Spring Boot 3.x 基于 Jakarta EE 9+ 规范,所有原Java EE体系下的javax.*包名已统一迁移至jakarta.*,Bean Validation(参数校验)相关的API也随之迁移,因此原代码中依赖的javax.validation包在Spring Boot 3环境下不再存在。

解决步骤

  • 替换代码中的包导入
    将所有代码里的import javax.validation.*替换为import jakarta.validation.*。比如你示例中的@Valid注解,需要从javax.validation.Valid改为jakarta.validation.Valid,修改后的方法代码:

    public String generateOtp(@Valid TotpAuthenticatorForm form, BindingResult bindingResult)
    
  • 确认依赖版本
    Spring Boot 3.x的spring-boot-starter-validation依赖已默认使用Jakarta版本,确保你的项目构建文件中引入的是正确的starter:

    • Maven项目(pom.xml):
      <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-validation</artifactId>
      </dependency>
      
    • Gradle项目(build.gradle):
      implementation 'org.springframework.boot:spring-boot-starter-validation'
      
  • 清理并重新构建项目
    执行构建工具的清理命令清除缓存,再重新编译:

    • Maven:mvn clean install
    • Gradle:gradle clean build
  • 同步自定义校验代码
    若项目中有自定义的校验器、约束注解等Bean Validation相关代码,需同步将所有javax.validation相关的包引用替换为jakarta.validation,比如ValidatorFactory、ConstraintViolation等类的导入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:55:16