kotlin和@Valid Spring批注
我有一个实体:
class SomeInfo( @NotNull @Pattern(regexp = Constraints.EMAIL_REGEX) var value: String) {
var id: Long? = null
}
和控制器方法:
@RequestMapping(value = "/some-info", method = RequestMethod.POST)public Id create(@Valid @RequestBody SomeInfo someInfo) {
...
}
@Valid
注释不起作用。
看来Spring需要一个默认的无参数构造函数,并且上面的花哨代码变得有些丑陋(但可以正常工作),如下所示:
class SomeInfo() { constructor(value: String) {
this.value = value
}
@NotNull @Pattern(regexp = Constraints.EMAIL_REGEX)
lateinit var value: String
var id: Long? = null
}
有什么好的做法可以减少罗y吗?
谢谢。
回答:
似乎Spring需要将这些注释应用于字段。但是Kotlin会将这些注释应用于构造函数参数。field:
在应用注释以使其应用于字段时,请使用说明符。以下代码适合您。
class SomeInfo( @field:NotNull
@field:Pattern(regexp = Constraints.EMAIL_REGEX)
var value: String
) {
var id: Long? = null
}
以上是 kotlin和@Valid Spring批注 的全部内容, 来源链接: utcz.com/qa/403464.html