2017-11-22 10 views
0

私のプロジェクトはSpring MVCからSpring bootに移行する必要があり、私たちはSpring InitializrからSpringブートを初期化するように管理されており、デフォルトでspring validationとバンドルされています。 Spring default validatorまたはHibernate validatorのいずれかを選択するのは混乱しています。 アドバイスをお願いします!SpringのデフォルトのバリデーターとHibernateのバリデーターはどちらが良いですか?

+0

バリデータを休止リファレンス実装でありますBean Validation仕様のうち、Spring Validation( 'Validator'インターフェース)はそれ自身のものです。通常、Hibernateの制約の検証はSpringに簡単に統合できるので、どちらも使用されます。実際、Spring Bootは自動的にそれを行うべきです。 –

答えて

1

1日の研究の後、私はいくつかの事実を見つけました。デフォルトでは、今春ブーツのよう

Bean Validation 1.0(JSR-303)が付属し、Bean Validation 1.1(JSR-349)

  • Java Beanがバリデーション(JSR 303)によって承認されたフレームワークであり、 JCP 2009年11月現在、Java EE 6仕様の一部として受け入れられています。
  • ビーン検証1.1(JSR 349)は2013.Itで仕上げられた一方のJava EE 7

Hibernateバリ6.Xの一部であるリファレンス実装Bean Validation 2.0(JSR 380)です。

  • 内蔵の制約@ Pastand @将来

    ためのJSR 310日付/時刻型のサポート
  • 新:@Positive@PositiveOrZero@Negative@NegativeOrZero@PastOrPresent@FutureOrPresent

  • ビーン検証を2.0は、Java EE 8プラットフォームの一部となります。ここで

はtheese 2の制約内蔵の比較である(Run code snippetをクリックし、注釈賢明な比較を参照してください。

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

関連する問題