Class MethodValidationPostProcessor
- java.lang.Object
- org.springframework.aop.framework.ProxyConfig
- org.springframework.aop.framework.ProxyProcessorSupport
- org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
- org.springframework.aop.framework.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor
- org.springframework.validation.beanvalidation.MethodValidationPostProcessor
- All Implemented Interfaces:
Serializable,AopInfrastructureBean,Aware,BeanClassLoaderAware,BeanFactoryAware,BeanPostProcessor,InitializingBean,Ordered
public class MethodValidationPostProcessor extends AbstractBeanFactoryAwareAdvisingPostProcessor implements InitializingBean
A convenientBeanPostProcessorimplementation 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
Validatedannotation at the type level, for their methods to be searched for inline constraint annotations. Validation groups can be specified through@Validatedas well. 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
- See Also:
MethodValidationInterceptor,ExecutableValidator, 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 Description MethodValidationPostProcessor()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidafterPropertiesSet()Invoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.protected AdvicecreateMethodValidationAdvice(Validator validator)Create AOP advice for method validation purposes, to be applied with a pointcut for the specified 'validated' annotation.voidsetValidatedAnnotationType(Class<? extends Annotation> validatedAnnotationType)Set the 'validated' annotation type.voidsetValidator(Validator validator)Set the JSR-303 Validator to delegate to for validating methods.voidsetValidatorFactory(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.autoproxy.AbstractBeanFactoryAwareAdvisingPostProcessor
isEligible, prepareProxyFactory, setBeanFactory
Methods inherited from class org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor
customizeProxyFactory, isEligible, postProcessAfterInitialization, postProcessBeforeInitialization, setBeforeExistingAdvisors
Methods inherited from class org.springframework.aop.framework.ProxyProcessorSupport
evaluateProxyInterfaces, getOrder, getProxyClassLoader, isConfigurationCallbackInterface, isInternalLanguageInterface, setBeanClassLoader, setOrder, setProxyClassLoader
Methods inherited from class org.springframework.aop.framework.ProxyConfig
copyFrom, isExposeProxy, isFrozen, isOpaque, isOptimize, isProxyTargetClass, setExposeProxy, setFrozen, setOpaque, setOptimize, setProxyTargetClass, toString
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 theValidatedannotation.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:InitializingBeanInvoked by the containingBeanFactoryafter it has set all bean properties and satisfiedBeanFactoryAware,ApplicationContextAwareetc.This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.
- Specified by:
afterPropertiesSetin interfaceInitializingBean
createMethodValidationAdvice
protected Advice createMethodValidationAdvice(@Nullable Validator validator)
Create AOP advice for method validation purposes, to be applied with a pointcut for the specified 'validated' annotation.- Parameters:
validator- the JSR-303 Validator to delegate to- Returns:
- the interceptor to use (typically, but not necessarily, a
MethodValidationInterceptoror subclass thereof) - Since:
- 4.2