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

回到顶部