首页 > 解决方案 > 在 kotlin 数据类中,@field:NotBlank 不起作用

问题描述

我们目前使用 jdk 14、spring boot 2.2.8.RELEASE 和 Kotlin 1.5.31。下面的类曾经在空白的名字或名字上出错。

现在我们正在尝试更新到 Spring Boot 2.5.4,它不再在我们的自动化测试用例中抛出错误。

data class ChangeInformationRequest(
    @field:NotBlank var firstName: String,
    @field:NotBlank var lastName: String,
    @field:Valid var address: Address?
)

标签: spring-bootkotlin

解决方案


问题是 Spring Boot 验证启动器不再包含在 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)。这意味着 thatspring-boot-starter-validation不再是spring-boot-starter-webor的传递依赖spring-boot-starter-webflux。因此,您必须自己实际添加依赖项pom.xml,如下所示:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

我建议您阅读所有相关的 Spring Boot 发行说明,以便您可以提前了解哪些是可能影响您的代码的主要更改:


推荐阅读