Spring Boot 确认注解完全不起作用(已尝试所有建议的解决方案)

3duebb1j  于 2022-12-04  发布在  Spring
关注(0)|答案(2)|浏览(273)

我尝试在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,重建项目。此外,我已经尝试该高速缓存无效。没有任何工作!!!依赖关系似乎也都很好。
我还能做什么?

b4lqfgs4

b4lqfgs41#

spring-boot-starter-validation依赖项中删除作用域test,您在运行时也需要此依赖项。
创建可以测试验证的单元/集成测试。使用Maven命令(如mvn clean test)运行测试。如果此操作成功,而在IntelliJ中执行相同的测试时失败,则说明存在IDE问题。

disho6za

disho6za2#

我不得不更新我的IntelliJ IDEA社区到最新的可用版本,这是下面和一切工作良好后,这一点

IntelliJ IDEA 2022.2.4 (Community Edition)
Build #IC-222.4459.24, built on November 22, 2022
Runtime version: 17.0.5+7-b469.71 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Windows 11 10.0
GC: G1 Young Generation, G1 Old Generation
Memory: 1004M
Cores: 8

Kotlin: 222-1.7.10-release-334-IJ4459.24

相关问题