Document BeanFactoryPostProcessor implementation constraints (SPR-7466)
JavaDoc and reference docs now warn developers against interacting with bean instances within BeanFactoryPostProcessor implementations in order to avoid premature bean instantiation. See SPR-7450 for an example of a third-party BFPP (OAuthTokenLifecycleRegistryPostProcessor) prematurely instantiating a FactoryBean instance, such that bean post-processing is bypassed and autowired injection (via @Inject) never occurs.
This commit is contained in:
@@ -31,6 +31,12 @@ import org.springframework.beans.BeansException;
|
||||
* <p>See PropertyResourceConfigurer and its concrete implementations
|
||||
* for out-of-the-box solutions that address such configuration needs.
|
||||
*
|
||||
* <p>A BeanFactoryPostProcessor may interact with and modify bean
|
||||
* definitions, but never bean instances. Doing so may cause premature bean
|
||||
* instantiation, violating the container and causing unintended side-effects.
|
||||
* If bean instance interaction is required, consider implementing
|
||||
* {@link BeanPostProcessor} instead.
|
||||
*
|
||||
* @author Juergen Hoeller
|
||||
* @since 06.07.2003
|
||||
* @see BeanPostProcessor
|
||||
|
||||
Reference in New Issue
Block a user