我尝试在IntelliJ IDEA 2022.2.3(社区版)内部版本号IC-222.4345.14(构建于2022年10月5日)中的Spring Boot 项目中使用@Valid
和@NotBlank
注解
我在项目pom.xml中添加了如下依赖项
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
<scope>test</scope>
</dependency>
在我的实体类中,我添加了如下@NotBlank
注解
@NotBlank(message = "Please add the department name")
private String departmentName;
在我的控制器类中,我也添加了@Valid
注解
@PostMapping("/departments")
public Department saveDepartment(@Valid @RequestBody Department department)
{
return departmentService.saveDepartment(department);
}
即使有了这些,我也不认为验证API是有效的。
我的春 Boot 版本是
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
理想情况下,如果我没有在POST请求中传递部门名称,我应该得到验证错误,但我从来没有得到任何空白部门名称的错误,我的注解存在。
我已经尝试了各种建议的解决方案,如关闭和重新启动IntelliJ Idea,重建项目。此外,我已经尝试该高速缓存无效。没有任何工作!!!依赖关系似乎也都很好。
我还能做什么?
2条答案
按热度按时间b4lqfgs41#
从
spring-boot-starter-validation
依赖项中删除作用域test
,您在运行时也需要此依赖项。创建可以测试验证的单元/集成测试。使用Maven命令(如
mvn clean test
)运行测试。如果此操作成功,而在IntelliJ中执行相同的测试时失败,则说明存在IDE问题。disho6za2#
我不得不更新我的IntelliJ IDEA社区到最新的可用版本,这是下面和一切工作良好后,这一点