2017-11-22 4 views
0

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

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. –

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 snippetClick 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