我在Kotlin写了一个项目,并把它放在一个控制器中:
@PostMapping("/token")
fun generateToken(@RequestBody @Valid credentials: Credentials) { /* something */ }
data class Credentials(@Email @NotBlank val email: String,
@NotBlank val password: String)
默认情况下@Valid
注释告诉Spring验证对象字段。但是Kotlin在构造函数参数上放置了约束注释,因此验证不起作用。为了使其工作,我必须为注释定义用户站点目标:
data class Credentials(@field:Email @field:NotBlank val email: String,
@field:NotBlank val password: String)
这很烦人并添加视觉垃圾。是否可以配置Spring来验证构造函数参数?
答案 0 :(得分:0)
你可以做很多事情。您可以通过组合每个字段的注释使其看起来更好一点,例如:
data class Credentials(@field:[Email NotBlank] val email: String,
@field:NotBlank val password: String)
除此之外,您唯一的其他选择是:
手动配置的Spring验证类
验证代码正文中的数据