开发Spring roo项目后,我在课堂上发现以下错误:
The import javax.validation.constraints.NotNull cannot be resolved
NotNull cannot be resolved to a type
我正在使用
STS 3.1.0.RELEASE
如何纠正这个问题?
我也有同样的问题。我发现最新版本的 Spring Boot 需要单独的依赖项来进行验证。我尝试在 pom.xml 文件中添加以下依赖项,它起作用了。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
包含此类的 jar 必须添加到项目的构建路径中:http://mvnrepository.com/artifact/javax.validation/validation-api/1.0.0.GA
对于 JDK-9,旧版本的“javax.validation”不支持。所以我们应该添加最新版本。
我们将通过以下方式了解任何 jar 的最新版本
C:\Users\username\.m2\repository\javax\validation\validation-api
上面的文件夹应该包含所有版本的jar,然后您可以通过以下方式将最新版本作为依赖项添加到pom.xml文件中
就我而言,“2.0.0.final”是最新版本。
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.0.Final</version>
</dependency>
从 Spring boot 2.3 版本开始,您必须在 pom.xml 中添加此依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
网络启动器不再包含验证,因此您必须手动添加
如果您正在使用 SpringBoot 并且要迁移到 Spring Boot 3,则需要将 javax.validation 的所有引用替换为 jakarta.validation。
查看 Spring Boot 的发行说明:
https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes
我使用 JDK JAVA 8,但仍然遇到类似的问题。只需在我的 pom.xml 中添加以下示例,错误就消失了
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
以下文章帮助我找到了解决方案: “https://www.baeldung.com/javax-validation”
之前,Gradle 默认包含此依赖项。我不知道会发生什么。您必须手动添加此依赖项:实现 'jakarta.validation:jakarta.validation-api:2.0.2'
您可能想使用 Jakarta 验证而不是 javax。因为后者已经被认为是遗产。 Spring Boot 3 默认包含 Jakarta lib。
我正在处理同样的问题。
这里你需要像这样导入 - 导入 jakarta.validation.constraints.NotNull;
而不是- 导入 javax.validation.constraints.NotNull
并在 pom.xml 文件中添加以下依赖项。
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.0.Final</version>
</dependency>
它开始工作了 -)))))))
Intellij解决方案: 粘贴下面的代码后,您需要(完全)关闭intellij,然后再次打开。
粘贴以下内容:
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
还有以下版本。
如果您使用 gradle,请在“build.gradle”文件中的“依赖项”中添加以下内容
implementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
我遇到了类似的问题,我添加了以下依赖项org.springframework.boot:spring-boot-starter-validation但仍然有相同的错误。然后发现由于从javax迁移到jakarta而发生了变化 您需要更改您的进口
javax.validation.constraints.NotNull;
到
导入 jakarta.validation.constraints.NotNull;