Spring:java:包 javax.validation.constraints 不存在

Hai*_*zai 3 java spring maven

我的 pom.xml 文件中已经有了这个依赖项

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

并刷新 Maven 并已重新启动 IntelliJ 但总是出现此错误 java: package javax.validation.constraints does not exist

由于某种原因,它找不到这个包。但是这个错误只发生在运行时。

在我导入的实体类中 import javax.validation.constraints.Size;

并希望向列添加注释,例如:

@Size(min = 1)
private String name;
Run Code Online (Sandbox Code Playgroud)

或者

@DecimalMin("0.01")
private BigDecimal amount;
Run Code Online (Sandbox Code Playgroud)

但我总是遇到验证包的问题。

IDE中没有错误信息,我运行时出现错误。

小智 15

建议使用Jakarta Bean Validation API来导入并解决此问题:

梅文

<dependency>
    <groupId>jakarta.validation</groupId>
    <artifactId>jakarta.validation-api</artifactId>
    <version>2.0.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

摇篮

implementation 'jakarta.validation:jakarta.validation-api:2.0.2'
Run Code Online (Sandbox Code Playgroud)


spr*_*boy 13

我在我的 Spring 应用程序中像这样使用它并且它起作用了。

<dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>1.1.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

  • 请注意,现在是 jakarta.validation-api (5认同)

Luk*_*ski 7

对于 gradle 用户,请将此依赖项添加到 build.gradle 文件中:

implementation 'javax.validation:validation-api:2.0.1.Final'
Run Code Online (Sandbox Code Playgroud)


Kim*_*_do 5

验证启动器不再包含在Spring Boot 2.3 版的web 启动器中https : //github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.3-Release-Notes#validation-starter-no-longer -included-in-web-starters

你应该自己添加。