## org.springframework.validation.beanvalidation
Class MethodValidationInterceptor

    java.lang.Object
      org.springframework.validation.beanvalidation.MethodValidationInterceptor

All Implemented Interfaces:
  Advice, Interceptor, MethodInterceptor

    public class MethodValidationInterceptor

extends Object
implements MethodInterceptor

An AOP Alliance `MethodInterceptor` 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)`

Validation groups can be specified through Spring's `Validated` annotation at the type level of the containing target class, applying to all public service methods of that class. By default, JSR-303 will validate against its default group only.

As of Spring 3.1, this functionality requires Hibernate Validator 4.2 or higher. In Spring 3.1.2, this class will autodetect a Bean Validation 1.1 compliant provider and automatically use the standard method validation support there (once available).

Since:
  3.1
Author:
  Juergen Hoeller
See Also:
  `MethodValidationPostProcessor`, `MethodValidator`

Constructor Summary
`MethodValidationInterceptor()` Create a new MethodValidationInterceptor using a default JSR-303 validator underneath.
`MethodValidationInterceptor(Validator validator)` Create a new MethodValidationInterceptor using the given JSR-303 Validator.
`MethodValidationInterceptor(ValidatorFactory validatorFactory)` Create a new MethodValidationInterceptor using the given JSR-303 ValidatorFactory.

Method Summary
`protected Class[]` `determineValidationGroups(MethodInvocation invocation)` Determine the validation groups to validate against for the given method invocation.
`Object` `invoke(MethodInvocation invocation)`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### MethodValidationInterceptor

    public MethodValidationInterceptor()

  Create a new MethodValidationInterceptor using a default JSR-303 validator underneath.

### MethodValidationInterceptor

    public MethodValidationInterceptor(ValidatorFactory validatorFactory)

  Create a new MethodValidationInterceptor using the given JSR-303 ValidatorFactory.

  Parameters:
    `validatorFactory` - the JSR-303 ValidatorFactory to use

### MethodValidationInterceptor

    public MethodValidationInterceptor(Validator validator)

  Create a new MethodValidationInterceptor using the given JSR-303 Validator.

  Parameters:
    `validatorFactory` - the JSR-303 Validator to use

Method Detail

### invoke

    public Object invoke(MethodInvocation invocation)
                  throws Throwable

  Specified by:
    `invoke` in interface `MethodInterceptor`
  Throws:
    `Throwable`

### determineValidationGroups

    protected Class[] determineValidationGroups(MethodInvocation invocation)

  Determine the validation groups to validate against for the given method invocation.

  Default are the validation groups as specified in the `Validated` annotation on the containing target class of the method.

  Parameters:
    `invocation` - the current MethodInvocation
  Returns:
    the applicable validation groups as a Class array