Spring 5 Webflux 功能端点 - 如何执行输入验证?

标签 spring spring-mvc hibernate-validator spring-webflux

根据当前文档 (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/

相关文章:

java - SPRING REST 中与父类的响应

java - 在 Spring MVC + Hibernate 应用程序中的某个类中获取方言

java - 处理异常,如 Spring MVC 中的验证错误

java - 获取 View 中 Spring Controller 和方法的名称

java - Hibernate 验证和字节码增强

java - jsp页面中没有图像

java - Spring 3.1.1 RedirectUtils 相当于 Spring 3.2.4

java - Java 正则表达式中的重音

java - 如果第一个 validator 失败,如何停止第二个 validator 的执行?

java - 为什么 Spring INFO 记录到标准错误?