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 .