Spring unterstützt zwei verschiedene Validierungsmethoden: Spring-Validierung und JSR-303-Bean-Validierung. Beides kann verwendet werden, indem ein Spring-Validator definiert wird, der an andere Delegierer einschließlich des Bean-Validators delegiert. So weit, ist es gut.Unterschied zwischen @Valid und @Validated im Frühjahr
Aber wenn Methoden notieren, um Validierung tatsächlich zu beantragen, ist es eine andere Geschichte. Ich kann wie dieses
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
mit Anmerkungen versehen oder ähnliche
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
Hier @Valid ist javax.validation.Valid und @Validated ist org.springframework.validation.annotation.Validated. Die Dokumente für letzteres sagen
Variante von JSR-303 Gültig, unterstützt die Spezifikation der Validierung Gruppen. Entwickelt für die bequeme Verwendung mit Spring JSR-303 Unterstützung aber nicht JSR-303 spezifisch.
was nicht viel hilft, weil es nicht genau sagt, wie es anders ist. Wenn überhaupt. Beide scheinen für mich ziemlich gut zu funktionieren.
Könnte interessant sein: http://stackoverflow.com/questions/18911154/how-to-specify-validation-group-for-valid –
_ "Unterstützung der Spezifikation von Validierungsgruppen" _ ist eine sehr explizite Aussage. – zeroflagL
Ich sollte denken, dass Valid eng mit JSR 303 Validierungen (NotNull, etc) gekoppelt ist. Sie können jedoch andere Validierungen/Gruppen erstellen und in Validated überprüfen lassen. – Atul