[解決済み] Springにおける@Validと@Validatedの相違点
質問
Springは2つの異なる検証方法をサポートしています。SpringのバリデーションとJSR-303のビーンバリデーションです。どちらも、Springバリデータを定義して、ビーンバリデータを含む他のデリゲータに委譲することで使用できます。ここまでは良いですね。
しかし、実際に検証を要求するメソッドにアノテーションをつけるとなると、話は別です。次のようなアノテーションをつけることができます。
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Valid @RequestBody TestObject obj, BindingResult result) {
または次のようになります。
@RequestMapping(value = "/object", method = RequestMethod.POST)
public @ResponseBody TestObject create(@Validated @RequestBody TestObject obj, BindingResult result) {
ここで、@Validは javax.validation.Validです。 であり、@Validatedは org.springframework.validation.annotation.Validated となります。 . 後者のdocsには
JSR-303のValidの亜種で、検証グループの指定をサポートする。 のグループです。SpringのJSR-303サポートで便利に使えるように設計されているが、JSR-303に特化したものではない。 JSR-303に特化したものではありません。
とありますが、どう違うのかがはっきりしないので、あまり役に立ちません。もしそうなら。どちらも私にとってはかなりうまく機能しているようです。
どのように解決するのですか?
ドキュメントから引用したように
@Validated
は、quot;validation groups"、すなわち、検証されたビーン内のフィールドのグループをサポートするために追加されました。これは、最初のステップで名前、電子メールなどを検証し、次のステップで他のフィールドを検証するような、複数ステップのフォームで使用することができます。
に追加されなかった理由は
@Valid
アノテーションに追加された理由は、Javaコミュニティのプロセス(JSR-303)を使って標準化されており、それには時間がかかるため、Spring開発者はこの機能を早く使えるようにしたいと考えたからです。
次のページに移動します。 このJiraチケット をクリックすると、アノテーションがどのように作成されたかを見ることができます。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] 文字列が有効な数値であるかどうかを確認するにはどうすればよいですか?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] JDKとJREの違いは何ですか?
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.util.NoSuchElementException 原因解析と解決方法
-
Java Exceptionが発生しました エラー解決
-
IllegalArgumentException この例外を解決する方法
-
myeclipseでコンパイルするとAntエラーが発生する javaの例外が発生しました。
-
ファインバグタイプ
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
eclipse アクセス制限です。タイプ 'xxx' は API ではありません(必須ライブラリ '' の制限)。
-
リソースの読み込みに失敗しました。サーバーはステータス500(内部サーバーエラー)で応答しました。
-
自動配線された依存性のインジェクションに失敗しました。
-
javax.net.ssl.SSLException: 読み取りエラー: ssl=0xdeae5100: システムコール中の I/O エラー、接続 res