Spring prend en charge deux méthodes de validation différentes: la validation Spring et la validation du bean JSR-303. Les deux peuvent être utilisés en définissant un validateur Spring qui délègue à d'autres délégués, y compris le validateur de bean. Jusqu'ici tout va bien.
Mais lorsque vous annotez des méthodes pour demander une validation, c'est une autre histoire. Je peux annoter comme ça
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
ou comme ça
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
Ici, @Valid est javax.validation.Valid et @Validated est org.springframework.validation.annotation.Validated . Les documents pour ce dernier disent
Variante du Valid de JSR-303, prenant en charge la spécification des groupes de validation. Conçu pour une utilisation pratique avec le support JSR-303 de Spring mais pas spécifique au JSR-303.
ce qui n'aide pas beaucoup car cela ne dit pas exactement en quoi c'est différent. Si pas du tout. Les deux semblent fonctionner assez bien pour moi.