【发布时间】:2018-12-27 15:35:00
【问题描述】:
我正在构建一个带有一些 Rest Controller 的 Web 应用程序:
@RestController
@RequestMapping(value = Path.ROOT)
public class TestController {
@Autowired
private AService service;
@RequestMapping(method = RequestMethod.POST)
public Flux<ItemResponse> doSomething(@RequestBody @Valid final ItemRequest request) {
return service.pleaseDoSomething(request);
}
}
我的输入对象是这样的:
public Class ItemRequest{
@NotNull
private String anInputValue
}
我的应用有注释@EnableWebFlux
问题是根本没有发生验证,当我删除以前的注释时,一切正常。
我正在使用 Spring boot 2.0.3 / tomcat dep
发生了什么事?
【问题讨论】:
-
SpringBoot 在检测到时会自动配置并启动响应式运行时。添加
@EnableWebFlux会禁用部分功能。 -
@Jorj 谢谢,但这不完全是我的用例,在您的问题中,他们正在尝试验证一个反应性对象,这是不可能的,因为您必须等待获得整个对象才能进行任何验证
-
@M.Deinum true 所以我需要定义一个自定义 WebFluxConfigurer 对吗?似乎我可以覆盖 getValidator()。问题是如何获得类路径中可用的默认验证器?
-
你为什么需要那个?您声明如果删除
@EnableWebFlux注释一切正常...
标签: spring spring-boot hibernate-validator spring-webflux