Bean lifecycle
- Instantiate - 容器在 XML 文件里找到定义并实例化它们
- Populate properties - 使用 DI 填充属性
- Set Bean Name - If the bean implements BeanNameAware interface, spring passes the bean's id to setBeanName() method.
- Set Bean factory - If Bean implements BeanFactoryAware interface, spring passes the beanfactory to setBeanFactory() method.
- Pre Initialization - 也叫 postprocess. Spring 调用 postProcesserBeforeInitialization() 方法.
- Initialize beans - If the bean implements IntializingBean,its afterPropertySet() method is called. If the bean has init method declaration, the specified initialization method is called.
- Post Initialization - 调用 postProcessAfterInitialization() 方法
- Ready to use - 现在可以用它们了.
- Destroy - If the bean implements DisposableBean , it will call the destroy() method .