Mein Projekt muss von Spring MVC
zu Spring boot
migrieren, und wir verwalten Spring Boot von Spring Initializr zu initialisieren und es ist standardmäßig mit spring validation
gebündelt. Es gibt eine Verwirrung unter uns, um entweder Spring default validator
oder Hibernate validator
zu wählen. Bitte Beratung !!Spring Default Validator vs Hibernate Validator: Was ist besser?
0
A
Antwort
1
Nach einem Tag Forschung habe ich ein paar Fakten herausgefunden.
Ab sofort Frühling Stiefel standardmäßig kommt mit Bean Validation 1.0
(JSR-303) und Bean Validation 1.1
(JSR-349)
- Java Bean Validation (JSR 303) ist ein Rahmen, der durch die genehmigt wurde JCP ab Nov 2009 und wird als Teil der Java EE 6 Spezifikation akzeptiert.
- Bean Validation 1.1 (JSR 349) in 2013.It abgeschlossen wurde, ist Teil der Java EE 7.
Hibernate Validator 6.X auf der anderen Seite ist die Referenzimplementierung Bean Validation 2.0
(JSR 380).
Unterstützung für den JSR 310 Datum/Zeit-Typen für @ Pastand @ Zukunft
Neue Einbau-Einschränkungen:
@Positive
,@PositiveOrZero
,@Negative
,@NegativeOrZero
,@PastOrPresent
und@FutureOrPresent
Bean Validation 2.0 wird auch Teil der Java EE 8-Plattform sein.
Hier ist der Vergleich von Einbau-Einschränkungen diesem Fall entweder zwei ist (auf Run code snippet
Click und Kommentierung weise Vergleich zu sehen.)
.w3-table,.w3-table-all{border-collapse:collapse;border-spacing:0;width:100%;display:table}.w3-table-all{border:1px solid #ccc}
.w3-bordered tr,.w3-table-all tr{border-bottom:1px solid #ddd}.w3-striped tbody tr:nth-child(even){background-color:#f1f1f1}
.w3-table-all tr:nth-child(odd){background-color:#fff}.w3-table-all tr:nth-child(even){background-color:#f1f1f1}
.w3-hoverable tbody tr:hover,.w3-ul.w3-hoverable li:hover{background-color:#ccc}.w3-centered tr th,.w3-centered tr td{text-align:center}
.w3-table td,.w3-table th,.w3-table-all td,.w3-table-all th{padding:8px 8px;display:table-cell;text-align:left;vertical-align:top}
.w3-table th:first-child,.w3-table td:first-child,.w3-table-all th:first-child,.w3-table-all td:first-child{padding-left:16px}
.red{
color : red;
}
.green{
color : green;
}
<table class="w3-table-all w3-card-4">
<thead>
<tr>
<th>Annotations/Features</th>
<th>Hibernate Validator 6.X</th>
<th>Spring default Validator</th>
</tr>
</thead>
<tbody>
<tr>
<td>@AssertFalse</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@AssertTrue</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@DecimalMax</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@DecimalMin</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Digits</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Future</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Max</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Min</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@NotNull</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Null</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Past</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Pattern</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
<td>@Size</td>
<td class="green">Yes</td>
<td class="green">Yes</td>
</tr>
<tr>
</tr>
<tr>
<td>@Negative</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@NegativeOrZero</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@Positive</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@PositiveOrZero</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@PastOrPresent</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@FutureOrPresent</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@NotEmpty</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@NotBlank</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
<tr>
<td>@Email</td>
<td class="green">Yes</td>
<td class="red">No</td>
</tr>
</tbody>
</table>
Verwandte Themen
- 1. Hibernate @Validator mit Spring Boot
- 2. Benutzerdefinierter Hibernate Validator Spring Boot
- 3. Spring Boot Hibernate Constraint Validator
- 4. ASP.Net Validator Default Style
- 5. Überschreiben Hibernate Validator Nachricht
- 6. Access Hibernate Validator Nachrichten
- 7. Seam/Hibernate Validator Zuhörer
- 8. Hibernate Validator - ODER Bedingung
- 9. Hibernate Validator für Querfeldvalidierung
- 10. TYPE_USE-Annotation im Hibernate-Validator
- 11. Spring Validator werfen Ausnahme
- 12. Spring-Data-Rest Validator
- 13. Spring @ Valid Validator nicht korrekt aufgerufen (Roo, Hibernate)
- 14. @Pattern (Regex = "") Spring Validator
- 15. Inoperativer Validator
- 16. Javax Hibernate Validator für enum
- 17. Hibernate-Validator: Verletzung Nachricht Sprache
- 18. Hibernate Validator Sequenz oder Reihenfolge
- 19. app.use (validator());^TypeError: Validator ist keine Funktion
- 20. Benutzerdefinierter Bean-Validator mit Validator-Schnittstelle von Spring
- 21. Hibernate-Validator @NotNull funktioniert nicht richtig
- 22. Hibernate Validator ruft Fehlermeldungen ab, ohne Spring Framework zu verwenden
- 23. Fehlermeldung im Spring Validator überschreiben
- 24. Mongoose Schema vs Mongo Validator
- 25. Validieren Sie Zahlenwerte mit dem Hibernate-Validator
- 26. Spring MVC mit anderen Teil des Hibernate Validator in Java
- 27. Manuell Hibernate URL Validator in Spring-Boot aufrufen
- 28. Spring MVC Skips Validator Klasse
- 29. Spring MVC Code inject Validator
- 30. Hibernate-Validator: Überwinden von Einschränkungsverletzungen Messaging
Hibernate Validator ist eine Implementierung Referenz der Bean-Validierungsspezifikation, der Springvalidierung (Validator-Schnittstelle) ist eine eigene Sache. Normalerweise werden beide verwendet, da die Überprüfung der Hibernate-Einschränkung einfach in Spring integriert werden kann. In der Tat sollte Spring Boot es automatisch tun. –