Spring supporta due diversi metodi di convalida: convalida Spring e convalida bean JSR-303. Entrambi possono essere usati definendo un validatore Spring che delega ad altri delegatori incluso il validatore bean. Fin qui tutto bene.
Ma quando si annotano metodi per richiedere effettivamente la convalida, è un'altra storia. Posso annotare in questo modo
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
o così
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
Qui, @Valid è javax.validation.Valid e @Validated è org.springframework.validation.annotation.Validated . I documenti per quest'ultimo dicono
Variante di JSR-303 valida, che supporta la specifica dei gruppi di convalida. Progettato per un comodo utilizzo con il supporto Spring JSR-303 ma non specifico per JSR-303.
che non aiuta molto perché non dice esattamente in che modo è diverso. Se non del tutto. Entrambi sembrano funzionare abbastanza bene per me.