2017-05-18 13 views
1

私はREST APIを開発する際の.NETの背景から来ています。今、Springブートを使ってJava RESTプロジェクトに取り組んでいます。@ValidとSpring Boot Rest APIで@Validated @RequestBody

まずコントローラ@RequestBodyでの私の検証は動作を停止します。それを修正しようとしている間、私は実装する方法が異なっていました。 @RequestBodyに注釈を付ける正しい方法は何でしょうか?

@Validated @RequestBody 

又は

@Valid @RequestBody 

答えて

0

@Validは、JSR-仕様であり、@ValidatedはSpringフレームワークからのものです。

プログラムがEJB/JSR標準と互換性がある必要がある場合は、@Validを使用します。そうでない場合は、両方を使用できます。

+0

ドキュメントリンクの追加を検討する – matthias

1

2つの大きな違いはありません。@ValidはJSR-303スタンダード、@Validatedはスプリングスタンダードです。

Springには、アプリケーションのすべてのレイヤーで検証に使用できるValidatorインターフェイスが用意されています。 Spring MVCでは、@Validまたは@Validatedコントローラメソッドの引数が見つかるたびに、または@InitBinderメソッドを介してコントローラ内のローカルValidatorとして使用されるたびに、グローバルValidatorインスタンスとして使用するように設定できます。グローバルバリデータインスタンスとローカルバリデータインスタンスを組み合わせて複合検証を提供することができます。

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

は、しかし、そのうちの一つは、あなたの検証注釈でgroupを使用する必要がある場合は、@Validatedを使用する必要があり、例えばです、違いがあり、それは@Validでサポートされていません。

関連する問題