Class MethodValidationInterceptor
- All Implemented Interfaces:
- Advice,- Interceptor,- MethodInterceptor
MethodInterceptor implementation that delegates to a
 JSR-303 provider for performing method-level validation on annotated methods.
 Applicable methods have 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)
 
In case of validation errors, the interceptor can raise
 ConstraintViolationException, or adapt the violations to
 MethodValidationResult and raise MethodValidationException.
 
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 5.0, this functionality requires a Bean Validation 1.1+ provider.
- Since:
- 3.1
- Author:
- Juergen Hoeller, Rossen Stoyanchev
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionCreate 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.MethodValidationInterceptor(Supplier<Validator> validator) Create a new MethodValidationInterceptor for the supplied (potentially lazily initialized) Validator.MethodValidationInterceptor(Supplier<Validator> validator, boolean adaptViolations) Create a new MethodValidationInterceptor for the supplied (potentially lazily initialized) Validator.
- 
Method SummaryModifier and TypeMethodDescriptionprotected Class<?>[]determineValidationGroups(MethodInvocation invocation) Determine the validation groups to validate against for the given method invocation.invoke(MethodInvocation invocation) Implement this method to perform extra treatments before and after the invocation.
- 
Constructor Details- 
MethodValidationInterceptorpublic MethodValidationInterceptor()Create a new MethodValidationInterceptor using a default JSR-303 validator underneath.
- 
MethodValidationInterceptorCreate a new MethodValidationInterceptor using the given JSR-303 ValidatorFactory.- Parameters:
- validatorFactory- the JSR-303 ValidatorFactory to use
 
- 
MethodValidationInterceptorCreate a new MethodValidationInterceptor using the given JSR-303 Validator.- Parameters:
- validator- the JSR-303 Validator to use
 
- 
MethodValidationInterceptorCreate a new MethodValidationInterceptor for the supplied (potentially lazily initialized) Validator.- Parameters:
- validator- a Supplier for the Validator to use
- Since:
- 6.0
 
- 
MethodValidationInterceptorCreate a new MethodValidationInterceptor for the supplied (potentially lazily initialized) Validator.- Parameters:
- validator- a Supplier for the Validator to use
- adaptViolations- whether to adapt- ConstraintViolations, and if- true, raise- MethodValidationException, of if- falseraise- ConstraintViolationExceptioninstead
- Since:
- 6.1
 
 
- 
- 
Method Details- 
invokeDescription copied from interface:MethodInterceptorImplement this method to perform extra treatments before and after the invocation. Polite implementations would certainly like to invokeJoinpoint.proceed().- Specified by:
- invokein interface- MethodInterceptor
- Parameters:
- invocation- the method invocation joinpoint
- Returns:
- the result of the call to Joinpoint.proceed(); might be intercepted by the interceptor
- Throws:
- Throwable- if the interceptors or the target object throws an exception
 
- 
determineValidationGroupsDetermine the validation groups to validate against for the given method invocation.Default are the validation groups as specified in the Validatedannotation on the method, or on the containing target class of the method, or for an AOP proxy without a target (with all behavior in advisors), also check on proxied interfaces.- Parameters:
- invocation- the current MethodInvocation
- Returns:
- the applicable validation groups as a Class array
 
 
-