我曾经在 Spring 的@RestController中验证我的bean,例如:

@PostMapping("/documents")
@ResponseStatus(HttpStatus.CREATED)
fun create(@Valid @RequestBody document: DocumentCreate) {
    return documentService.create(document)
}

即使看起来很愚蠢,我现在也想根据DocumentCreate bool(boolean) 属性来验证我的bean,例如:
@PostMapping("/documents")
@ResponseStatus(HttpStatus.CREATED)
fun create(@RequestBody document: DocumentCreate) {
    return when {
        document.needValidation -> documentService.createWithValidation(document),
        else -> documentService.createWithoutValidation(document)
    }
}

我尝试将@Valid批注移动到文档@Service类,但它不会触发验证。我该如何实现?可能吗?

最佳答案

对于任何想知道如何使用注解的人。用spring的@Validated注释您的服务类。完成后,它将在用@Valid装饰的服务类方法中触发输入bean的验证。

08-18 19:41