Spring suporta dois métodos de validação diferentes: validação Spring e validação de bean JSR-303. Ambos podem ser usados definindo um validador Spring que delega a outros delegadores, incluindo o validador de bean. Por enquanto, tudo bem.
Mas ao anotar métodos para realmente solicitar validação, é outra história. Eu posso anotar assim
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
ou assim
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
Aqui, @Valid é javax.validation.Valid e @Validated é org.springframework.validation.annotation.Validated . Os documentos deste último dizem
Variante do Valid JSR-303, suportando a especificação de grupos de validação. Projetado para uso conveniente com o suporte JSR-303 do Spring, mas não específico para JSR-303.
o que não ajuda muito porque não diz exatamente como é diferente. Se for assim. Ambos parecem estar funcionando muito bem para mim.