クラス MethodValidationPostProcessor

実装されたすべてのインターフェース:
SerializableSEAopInfrastructureBeanAwareBeanClassLoaderAwareBeanFactoryAwareBeanPostProcessorInstantiationAwareBeanPostProcessorSmartInstantiationAwareBeanPostProcessorInitializingBeanOrdered

public class MethodValidationPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor implements InitializingBean
アノテーション付きメソッドに対してメソッドレベルの検証を実行するために JSR-303 プロバイダーに委譲する便利な BeanPostProcessor 実装。

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

 public @NotNull Object myValidMethod(@NotNull String arg1, @Max(10) int arg2)
 

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

このようなアノテーション付きメソッドを持つターゲットクラスは、インライン制約アノテーションをメソッドで検索するために、型レベルで Spring の Validated アノテーションを付ける必要があります。検証グループは @Validated でも指定できます。デフォルトでは、JSR-303 はそのデフォルトグループに対してのみ検証します。

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

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

    • MethodValidationPostProcessor

      public MethodValidationPostProcessor()
  • メソッドの詳細

    • setValidatedAnnotationType

      public void setValidatedAnnotationType(ClassSE<? extends AnnotationSE> validatedAnnotationType)
      「検証済み」のアノテーション型を設定します。デフォルトの検証済みアノテーション型は Validated アノテーションです。

      この setter プロパティは、開発者が独自の(Spring 固有ではない)アノテーション型を提供して、クラスがメソッド検証を適用するという意味で検証されることになっていることを示すために存在します。

      パラメーター:
      validatedAnnotationType - 目的のアノテーション型
    • setValidatorFactory

      public void setValidatorFactory(ValidatorFactoryEE validatorFactory)
      デフォルトの Validator を使用して、JSR-303 ValidatorFactory を検証メソッドに委譲するように設定します。

      デフォルトは、デフォルトの ValidatorFactory のデフォルトのバリデーターです。

      関連事項:
    • setValidator

      public void setValidator(ValidatorEE validator)
      メソッドを検証するために委譲する JSR-303 バリデーターを設定します。

      デフォルトは、デフォルトの ValidatorFactory のデフォルトのバリデーターです。

    • setValidatorProvider

      public void setValidatorProvider(ObjectProvider<ValidatorEE> validatorProvider)
      遅延初期化された Validator を設定して、メソッドを検証するために委譲します。
      導入:
      6.0
      関連事項:
    • setAdaptConstraintViolations

      public void setAdaptConstraintViolations(boolean adaptViolations)
      ConstraintViolationEEMethodValidationResult に適応させるかどうか。

      デフォルトでは false ですが、違反があった場合には ConstraintViolationExceptionEE が発生します。true に設定すると、代わりにメソッド検証結果を使用して MethodValidationException が発生します。

      導入:
      6.1
    • afterPropertiesSet

      public void afterPropertiesSet()
      インターフェースからコピーされた説明: InitializingBean
      すべての Bean プロパティを設定し、BeanFactoryAwareApplicationContextAware などを満たした後、包含 BeanFactory によって呼び出されます。

      このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。

      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
    • createMethodValidationAdvice

      protected Advice createMethodValidationAdvice(SupplierSE<ValidatorEE> validator)
      メソッド検証の目的で AOP アドバイスを作成し、指定された「検証済み」アノテーションのポイントカットを適用します。
      パラメーター:
      validator - Validator が使用するための Supplier
      戻り値:
      使用するインターセプター (通常、MethodValidationInterceptor またはそのサブクラス)
      導入:
      6.0