2017-05-18 5 views
1

Ich komme aus einem .NET-Hintergrund in der Entwicklung von REST-APIs. Arbeitet nun an einem Java-REST-Projekt mit Spring Boot.@Valid vs @Validated im Frühjahr Boot Rest API @RequestBody

Zuerst meine Validierung an der Steuerung @RequestBody aufhören zu arbeiten. Während ich versuchte, es zu beheben, sah ich verschiedene Möglichkeiten zu implementieren. Was wäre der richtige Weg, um den @RequestBody mit Anmerkungen zu versehen?

@Validated @RequestBody 

oder

@Valid @RequestBody 

Antwort

0

@Valid ist in der JSR-Spezifikation und @Validated ist aus Federrahmen.

Wenn Ihr Programm mit EJB/JSR Standard kompatibel sein soll, verwenden Sie @Valid, andernfalls können Sie beide verwenden.

+0

erwägen, Dokumentationslinks hinzuzufügen – matthias

1

Es gibt im Allgemeinen keinen großen Unterschied zwischen ihnen zwei, @Valid ist von JSR-303 standand, @Validated ist Feder Standard. gemäß Federdokument:

Spring stellt eine Validator-Schnittstelle zur Verfügung, die für die Validierung in allen Schichten einer Anwendung verwendet werden kann. In Spring MVC können Sie es für die Verwendung als globale Validator-Instanz konfigurieren, die immer dann verwendet wird, wenn ein @Valid- oder @Validated-Controller-Methodenargument gefunden wird, und/oder als lokaler Validator innerhalb eines Controllers über eine @InitBinder-Methode. Globale und lokale Validatorinstanzen können kombiniert werden, um eine zusammengesetzte Validierung bereitzustellen.

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

Allerdings gibt es Unterschiede, einer von ihnen ist zum Beispiel, wenn Sie group in Ihrer Validierungs Annotation verwenden müssen, müssen Sie @Validated verwenden, wird es nicht mit @Valid unterstützt.

Verwandte Themen