BeanPostProcessor that adds a before-instantiation callback,
and a callback after instantiation but before explicit properties are set or
autowiring occurs.
Typically used to suppress default instantiation for specific target beans, for example to create proxies with special TargetSources (pooling targets, lazily initializing targets, etc), or to implement additional injection strategies such as field injection.
Note
This interface is a special purpose interface, mainly for
internal use within the framework. It is recommended to implement the plain
BeanPostProcessor interface as far as possible.
org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#setCustomTargetSourceCreators , org.springframework.aop.framework.autoproxy.target.LazyInitTargetSourceCreator
| Modifier and Type | Method and Description |
|---|---|
| public default boolean | Returns: true if properties should be set on the bean; false
if property population should be skipped. Normal implementations should return true.
Returning false will also prevent any subsequent InstantiationAwareBeanPostProcessor
instances being invoked on this bean instance.the bean instance created, with properties not having been set yet bean, String the name of the bean beanName)Perform operations after the bean has been instantiated, via a constructor or factory method, but before Spring property population (from explicit properties or autowiring) occurs. |
| public default Object | Returns: the bean object to expose instead of a default instance of the target bean, ornull to proceed with default instantiationthe class of the bean to be instantiated beanClass, String the name of the bean beanName)Apply this BeanPostProcessor before the target bean gets instantiated. |
| public default PropertyValues | Returns: the actual property values to apply to the given bean (can be the passed-in PropertyValues instance), ornull to skip property populationthe property values that the factory is about to apply (never pvs, Object null)the bean instance created, but whose properties have not yet been set bean, String the name of the bean beanName)Post-process the given property values before the factory applies them to the given bean. |
| postProcessAfterInstantiation | back to summary |
|---|---|
| public default boolean postProcessAfterInstantiation(Object bean, String beanName) throws BeansException Perform operations after the bean has been instantiated, via a constructor or factory method, but before Spring property population (from explicit properties or autowiring) occurs. This is the ideal callback for performing custom field injection on the given bean instance, right before Spring's autowiring kicks in. The default implementation returns
| |
| postProcessBeforeInstantiation | back to summary |
|---|---|
| public default Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) throws BeansException Apply this BeanPostProcessor before the target bean gets instantiated. The returned bean object may be a proxy to use instead of the target bean, effectively suppressing default instantiation of the target bean. If a non-null object is returned by this method, the bean creation process
will be short-circuited. The only further processing applied is the
This callback will be applied to bean definitions with their bean class, as well as to factory-method definitions in which case the returned bean type will be passed in here. Post-processors may implement the extended
The default implementation returns
| |
| postProcessProperties | back to summary |
|---|---|
| public default PropertyValues postProcessProperties(PropertyValues pvs, Object bean, String beanName) throws BeansException Post-process the given property values before the factory applies them to the given bean. The default implementation returns the given
| |