(1)实例化(当程序加载bean.xml),把配置的bean(前提是scope=singleton)实例化到内存中;
(2)调用set方法注入依赖关系;
(3)如果Bean有实现BeanNameAware(名字关注接口)的接口那么对这些Bean进行调用,可以通过setBeanName获取id号;
(4)如果Bean有实现BeanFactoryAware(工厂关注接口)接口的那么对这些Bean进行调用,则可以获取BeanFactory;
(5)如果Bean有实现ApplicationContextAware接口的那么对这些Bean进行调用,则可以获取ApplicationContext;
(6)如果配置有实现BeanPostProcesso(后置管理器接口)的Bean,那么调用它的postProcessBeforeInitialization方法;
(7)如果Bean有实现InitializingBean接口那么对这些Bean进行调用;
(8)如果Bean配置有init属性,那么调用它属性中设置的方法;
(9)如果配置有实现BeanPostProcessor的Bean,那么调用它的postProcessAfterInitialization方法;
(10)Bean正常使用;
(11)容器关闭;
(12) 调用DisposableBean接口的destory方法;
(13)调用Bean定义的destory方法;