1、将需要由Spring管理的Bean进行实例化(Bean实例化);
2、属性注入(DI);
3、如果当前Bean实现了BeanNameAware接口,执行setBeanName(String name);
4、如果当前Bean实现了BeanFactoryAware接口,执行setBeanFactory(BeanFactory beanFactory);
5、如果当前Bean实现了ApplicationContextAware接口,执行setApplicationContext(ApplicationContext applicationContext) ;
6、如果当前Bean实现了BeanPostProcessor接口,执行postProcessBeforeInitialization(Object bean, String beanName);
7、如果当前Bean实现了InitializingBean,执行afterPropertiesSet(),如果配置了init-method,执行对应的方法;
8、如果当前Bean实现了BeanPostProcessor接口,执行postProcessAfterInitialization(Object bean, String beanName);
9、此时Bean初始化完成,可以从Spring容器中获取到Bean;
10、如果Bean实现了DisposableBean接口,执行destroy()方法;如果配置了destroy-method,执行对应的方法。