org.springframework.validation.beanvalidation

## Class MethodValidationPostProcessor

- java.lang.Object
- - org.springframework.aop.framework.ProxyConfig
  - - org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
    - - org.springframework.validation.beanvalidation.MethodValidationPostProcessor

- All Implemented Interfaces:
    Serializable, Aware, BeanClassLoaderAware, BeanPostProcessor, InitializingBean, Ordered

      public class MethodValidationPostProcessor
      extends AbstractAdvisingBeanPostProcessor
      implements InitializingBean

  A convenient `BeanPostProcessor` implementation that delegates to a JSR-303 provider for performing method-level validation on annotated methods.

  Applicable methods have JSR-303 constraint annotations on their parameters and/or on their return value (in the latter case specified at the method level, typically as inline annotation), e.g.:

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

  Target classes with such annotated methods need to be annotated with Spring's `Validated` annotation at the type level, for their methods to be searched for inline constraint annotations. Validation groups can be specified through `@Validated` as well. By default, JSR-303 will validate against its default group only.

  As of Spring 3.1, this functionality requires Hibernate Validator 4.2 or 4.3. In Spring 4.0, this class will autodetect a Bean Validation 1.1 compliant provider (such as Hibernate Validator 5.0) and automatically use the standard method validation support when available.

  Since:
    3.1
  Author:
    Juergen Hoeller
  See Also:
    `MethodValidationInterceptor`, `MethodValidator`, Serialized Form

- - ### Field Summary

    - ### Fields inherited from class org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor

      `advisor, beforeExistingAdvisors`

    - ### Fields inherited from interface org.springframework.core.Ordered

      `HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MethodValidationPostProcessor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
    `void` | `setValidatedAnnotationType(Class<? extends Annotation> validatedAnnotationType)` Set the 'validated' annotation type.
    `void` | `setValidator(Validator validator)` Set the JSR-303 Validator to delegate to for validating methods.
    `void` | `setValidatorFactory(ValidatorFactory validatorFactory)` Set the JSR-303 ValidatorFactory to delegate to for validating methods, using its default Validator.

    - ### Methods inherited from class org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor

      `getOrder, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeanClassLoader, setBeforeExistingAdvisors, setOrder`

    - ### Methods inherited from class org.springframework.aop.framework.ProxyConfig

      `copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### MethodValidationPostProcessor

          public MethodValidationPostProcessor()

  - ### Method Detail

    - #### setValidatedAnnotationType

          public void setValidatedAnnotationType(Class<? extends Annotation> validatedAnnotationType)

      Set the 'validated' annotation type. The default validated annotation type is the `Validated` annotation.

      This setter property exists so that developers can provide their own (non-Spring-specific) annotation type to indicate that a class is supposed to be validated in the sense of applying method validation.

      Parameters:
        `validatedAnnotationType` - the desired annotation type

    - #### setValidator

          public void setValidator(Validator validator)

      Set the JSR-303 Validator to delegate to for validating methods.

      Default is the default ValidatorFactory's default Validator.

    - #### setValidatorFactory

          public void setValidatorFactory(ValidatorFactory validatorFactory)

      Set the JSR-303 ValidatorFactory to delegate to for validating methods, using its default Validator.

      Default is the default ValidatorFactory's default Validator.

      See Also:
        `ValidatorFactory.getValidator()`

    - #### afterPropertiesSet

          public void afterPropertiesSet()

      Description copied from interface: `InitializingBean`
      Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

      This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

      Specified by:
        `afterPropertiesSet` in interface `InitializingBean`