Top Description Fields Constructors Methods
org.springframework.validation.beanvalidation

public Class BeanValidationPostProcessor

extends Object
implements BeanPostProcessor, InitializingBean
Class Inheritance
All Implemented Interfaces
org.springframework.beans.factory.InitializingBean, org.springframework.beans.factory.config.BeanPostProcessor
Imports
java.util.Iterator, .Set, jakarta.validation.ConstraintViolation, .Validation, .Validator, .ValidatorFactory, org.springframework.aop.framework.AopProxyUtils, org.springframework.beans.BeansException, org.springframework.beans.factory.BeanInitializationException, .InitializingBean, org.springframework.beans.factory.config.BeanPostProcessor, org.springframework.lang.Nullable, org.springframework.util.Assert

Simple BeanPostProcessor that checks JSR-303 constraint annotations in Spring-managed beans, throwing an initialization exception in case of constraint violations right before calling the bean's init method (if any).
Author
Juergen Hoeller
Since
3.0

Field Summary

Modifier and TypeField and Description
private boolean
private Validator

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public void
afterPropertiesSet()

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

protected void
doValidate(Object
the bean instance to validate
bean
)

Perform validation of the given bean.

public Object
postProcessAfterInitialization(Object
the new bean instance
bean
,
String
the name of the bean
beanName
)

Overrides default org.springframework.beans.factory.config.BeanPostProcessor.postProcessAfterInitialization.

Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).

public Object
postProcessBeforeInitialization(Object
the new bean instance
bean
,
String
the name of the bean
beanName
)

Overrides default org.springframework.beans.factory.config.BeanPostProcessor.postProcessBeforeInitialization.

Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method).

public void
setAfterInitialization(boolean afterInitialization)

Choose whether to perform validation after bean initialization (i.e. after init methods) instead of before (which is the default).

public void
setValidator(Validator validator)

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

public void
setValidatorFactory(ValidatorFactory validatorFactory)

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

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

afterInitializationback to summary
private boolean afterInitialization
validatorback to summary
private Validator validator
Annotations
@Nullable

Constructor Detail

BeanValidationPostProcessorback to summary
public BeanValidationPostProcessor()

Method Detail

afterPropertiesSetback to summary
public void afterPropertiesSet()

Implements org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Doc from org.springframework.beans.factory.InitializingBean.afterPropertiesSet.

Invoked by the containing BeanFactory after it has set all bean properties and satisfied BeanFactoryAware, ApplicationContextAware etc.

This method allows the bean instance to perform validation of its overall configuration and final initialization when all bean properties have been set.

Annotations
@Override
doValidateback to summary
protected void doValidate(Object bean)

Perform validation of the given bean.

Parameters
bean:Object

the bean instance to validate

See Also
jakarta.validation.Validator#validate
postProcessAfterInitializationback to summary
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException

Overrides default org.springframework.beans.factory.config.BeanPostProcessor.postProcessAfterInitialization.

Doc from org.springframework.beans.factory.config.BeanPostProcessor.postProcessAfterInitialization.

Apply this BeanPostProcessor to the given new bean instance after any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

In case of a FactoryBean, this callback will be invoked for both the FactoryBean instance and the objects created by the FactoryBean (as of Spring 2.0). The post-processor can decide whether to apply to either the FactoryBean or created objects or both through corresponding bean instanceof FactoryBean checks.

This callback will also be invoked after a short-circuiting triggered by a InstantiationAwareBeanPostProcessor#postProcessBeforeInstantiation method, in contrast to all other BeanPostProcessor callbacks.

The default implementation returns the given bean as-is.

Parameters
bean:Object

the new bean instance

beanName:String

the name of the bean

Returns:Object

the bean instance to use, either the original or a wrapped one; if null, no subsequent BeanPostProcessors will be invoked

Annotations
@Override
Exceptions
BeansException:
in case of errors
postProcessBeforeInitializationback to summary
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException

Overrides default org.springframework.beans.factory.config.BeanPostProcessor.postProcessBeforeInitialization.

Doc from org.springframework.beans.factory.config.BeanPostProcessor.postProcessBeforeInitialization.

Apply this BeanPostProcessor to the given new bean instance before any bean initialization callbacks (like InitializingBean's afterPropertiesSet or a custom init-method). The bean will already be populated with property values. The returned bean instance may be a wrapper around the original.

The default implementation returns the given bean as-is.

Parameters
bean:Object

the new bean instance

beanName:String

the name of the bean

Returns:Object

the bean instance to use, either the original or a wrapped one; if null, no subsequent BeanPostProcessors will be invoked

Annotations
@Override
Exceptions
BeansException:
in case of errors
setAfterInitializationback to summary
public void setAfterInitialization(boolean afterInitialization)

Choose whether to perform validation after bean initialization (i.e. after init methods) instead of before (which is the default).

Default is "false" (before initialization). Switch this to "true" (after initialization) if you would like to give init methods a chance to populate constrained fields before they get validated.

setValidatorback to summary
public void setValidator(Validator validator)

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

Default is the default ValidatorFactory's default Validator.

setValidatorFactoryback to summary
public void setValidatorFactory(ValidatorFactory validatorFactory)

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

Default is the default ValidatorFactory's default Validator.

See Also
jakarta.validation.ValidatorFactory#getValidator()