@Valid vs @Validated在Spring Boot Rest API @RequestBody中

时间:2017-05-18 14:57:02

标签: spring spring-boot

我来自.NET开发REST API的背景。现在使用spring boot处理java REST项目。

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

@Validated @RequestBody

@Valid @RequestBody

2 个答案:

答案 0 :(得分:6)

两者之间通常没有太大区别,@Valid来自JSR-303标准,@Validated是弹簧标准。根据春季文件:

  

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

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

但是存在差异,例如,如果您需要在验证注释中使用group,则需要使用@Validated,而@Valid不支持rem Copia de Archivos PST a Carpeta FronMig***** @echo off taskkill /IM outlook.exe if not exist c:\FronMig mkdir c:\FronMig if not exist c:\FronMig\pst mkdir c:\FronMig\pst c: dir /b c:\*.pst /s > c:\FronMig\pathdata.txt pause for /f "tokens=1 delims=" %%a in (c:\FronMig\pathdata.txt) do (copy "%%a" c:\FronMig\pst) start outlook.exe pause

答案 1 :(得分:0)

@Valid在JSR规范中,而@Validated来自spring框架。

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