提问者:小点点

@有效vs@在Spring Boot Rest中验证API@RequestBody[重复]


我来自一个。NET开发REST API的背景。现在正在使用Spring bootjavaREST项目。

首先,我在控制器@Request estBody的验证停止工作。在尝试修复它时,我看到了不同的实现方法。那么注释@Request estBody的正确方法是什么?

@Validated @RequestBody

@Valid @RequestBody

共2个答案

匿名用户

它们两者一般没有太大区别,@Valid来自JSR-303标准,@Valid是Spring标准。根据Spring文档:

Spring提供了一个Validator接口,可用于应用程序的所有层中的验证。在Spring中MVC您可以将其配置为用作全局Validator实例,在遇到@Valid或@Val的控制器方法参数时使用,和/或通过@InitBinder方法用作控制器中的本地Validator。全局和本地验证器实例可以组合以提供复合验证。

参考:https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-config-validation

但是存在差异,其中之一是例如,如果您需要在验证注释中使用group,则需要使用@Valid,它不支持@Valid

匿名用户

@Valid在JSR-规范中,@Validedis来自Spring框架。

当您的程序应该与EJB/JSR Standard兼容时,请使用@Valid,否则您可以同时使用两者。