Interface SmartInitializingSingleton
BeanFactory bootstrap. This interface can be implemented by
singleton beans in order to perform some initialization after the regular
singleton instantiation algorithm, avoiding side effects with accidental early
initialization (for example, from ListableBeanFactory.getBeansOfType(java.lang.Class<T>) calls).
In that sense, it is an alternative to InitializingBean which gets
triggered right at the end of a bean's local construction phase.
This callback variant is somewhat similar to
invalid reference
org.springframework.context.event.ContextRefreshedEventinvalid reference
org.springframework.context.ApplicationListenerbeans package
and is being honored by standalone ListableBeanFactory implementations,
not just in an
invalid reference
org.springframework.context.ApplicationContext
NOTE: If you intend to start/manage asynchronous tasks, preferably
implement
invalid reference
org.springframework.context.Lifecycle
- Since:
- 4.1
- Author:
- Juergen Hoeller
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoidInvoked right at the end of the singleton pre-instantiation phase, with a guarantee that all regular singleton beans have been created already.
-
Method Details
-
afterSingletonsInstantiated
void afterSingletonsInstantiated()Invoked right at the end of the singleton pre-instantiation phase, with a guarantee that all regular singleton beans have been created already.ListableBeanFactory.getBeansOfType(java.lang.Class<T>)calls within this method won't trigger accidental side effects during bootstrap.NOTE: This callback won't be triggered for singleton beans lazily initialized on demand after
BeanFactorybootstrap, and not for any other bean scope either. Carefully use it for beans with the intended bootstrap semantics only.
-