クラス MethodValidationInterceptor

java.lang.ObjectSE
org.springframework.validation.beanvalidation.MethodValidationInterceptor
実装されたすべてのインターフェース:
AdviceInterceptorMethodInterceptor

public class MethodValidationInterceptor extends ObjectSE implements MethodInterceptor
アノテーション付きメソッドでメソッドレベルの検証を実行するために JSR-303 プロバイダーに委譲する AOP アライアンス MethodInterceptor 実装。

該当するメソッドには、パラメーターおよび / または戻り値に ConstraintEE アノテーションが付いています (後者の場合、メソッドレベルで指定され、通常はインラインアノテーションとして指定されます)。

E.g .: public @NotNull Object myValidMethod(@NotNull String arg1, @Max(10) int arg2)

検証エラーが発生した場合、インターセプターは ConstraintViolationExceptionEE を発生させるか、違反を MethodValidationResult に適応させて MethodValidationException を発生させることができます。

検証グループは、Spring の Validated アノテーションを通じて、それを含むターゲットクラスの型レベルで指定でき、そのクラスのすべてのパブリックサービスメソッドに適用されます。デフォルトでは、JSR-303 はデフォルトグループに対してのみ検証します。

Spring 5.0 の時点で、この機能には Bean 検証 1.1 + プロバイダーが必要です。

導入:
3.1
作成者:
Juergen Hoeller, Rossen Stoyanchev
関連事項:
  • コンストラクターの詳細

    • MethodValidationInterceptor

      public MethodValidationInterceptor()
      下にあるデフォルトの JSR-303 バリデーターを使用して、新しい MethodValidationInterceptor を作成します。
    • MethodValidationInterceptor

      public MethodValidationInterceptor(ValidatorFactoryEE validatorFactory)
      指定された JSR-303 ValidatorFactory を使用して新しい MethodValidationInterceptor を作成します。
      パラメーター:
      validatorFactory - 使用する JSR-303 ValidatorFactory
    • MethodValidationInterceptor

      public MethodValidationInterceptor(ValidatorEE validator)
      指定された JSR-303 バリデーターを使用して、新しい MethodValidationInterceptor を作成します。
      パラメーター:
      validator - 使用する JSR-303 バリデーター
    • MethodValidationInterceptor

      public MethodValidationInterceptor(SupplierSE<ValidatorEE> validator)
      提供された (潜在的に遅延初期化された) Validator の新しい MethodValidationInterceptor を作成します。
      パラメーター:
      validator - Validator が使用するための Supplier
      導入:
      6.0
    • MethodValidationInterceptor

      public MethodValidationInterceptor(SupplierSE<ValidatorEE> validator, boolean adaptViolations)
      提供された (潜在的に遅延初期化された) Validator の新しい MethodValidationInterceptor を作成します。
      パラメーター:
      validator - Validator が使用するための Supplier
      adaptViolations - ConstraintViolationEE を適応させるかどうか、true の場合は MethodValidationException を発生させるか、false の場合は代わりに ConstraintViolationExceptionEE を発生させるか
      導入:
      6.1
  • メソッドの詳細

    • invoke

      @Nullable public ObjectSE invoke(MethodInvocation invocation) throws ThrowableSE
      インターフェースからコピーされた説明: MethodInterceptor
      このメソッドを実装して、呼び出しの前後に追加の処理を実行します。正しい実装としては、必ず Joinpoint.proceed() を呼び出すようにします。
      次で指定:
      インターフェース MethodInterceptorinvoke 
      パラメーター:
      invocation - メソッド呼び出しジョインポイント
      戻り値:
      Joinpoint.proceed() の呼び出しの結果。インターセプターによってインターセプトされる可能性があります
      例外:
      ThrowableSE - インターセプターまたはターゲットオブジェクトが例外をスローする場合
    • determineValidationGroups

      protected ClassSE<?>[] determineValidationGroups(MethodInvocation invocation)
      特定のメソッド呼び出しに対して検証する検証グループを決定します。

      デフォルトは、メソッドの Validated アノテーションで指定されているか、メソッドの包含ターゲットクラスで指定されている検証グループです。または、ターゲットのない AOP プロキシ (アドバイザーのすべての動作を含む) の場合は、プロキシされたインターフェースもチェックします。

      パラメーター:
      invocation - 現在の MethodInvocation
      戻り値:
      Class 配列としての適用可能な検証グループ