根据当前文档 (5.0.0.RELEASE),Spring Webflux 在使用带注释的 Controller 时支持验证:
By default if Bean Validation is present on the classpath — e.g. Hibernate Validator, the LocalValidatorFactoryBean is registered as a global Validator for use with @Valid and Validated on @Controller method arguments.
然而,关于如何使用功能端点自动化它并没有说什么。事实上,文档中唯一的输入处理示例并没有验证任何内容:
public Mono<ServerResponse> createPerson(ServerRequest request) {
Mono<Person> person = request.bodyToMono(Person.class);
return ServerResponse.ok().build(repository.savePerson(person));
}
我们应该手动执行此操作还是有一些自动方法可以执行此操作?
最佳答案
在 Spring 5.0 版中,没有自动方式在功能端点中进行验证,因此必须手动完成。
虽然目前没有具体的计划,但我们可能会在未来添加某种验证。但即便如此,它也将是一个显式的方法调用,而不是一种自动机制。总体而言,功能端点模型的设计比基于注释的模型更加明确。
关于Spring 5 Webflux 功能端点 - 如何执行输入验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508618/