1. Spring IOC容器初始化过程:
![0b843ebb9ae2b75c2c6f14fc1b017b47.png](https://i-blog.csdnimg.cn/blog_migrate/9f8dc9c0aa078c7298b1061ba2de0b6e.png)
2. bean的生命周期
Bean 容器找到配置文件中 Spring Bean 的定义。(beanDefintion)
Bean 容器利用 Java Reflection API 创建一个Bean的实例。(执行构造方法)
如果涉及到一些属性值 利用 set()方法设置一些属性值。(set属性)
如果 Bean 实现了 BeanNameAware 接口,调用 setBeanName()方法,传入Bean的名字。(aware接口的相关方法)
如果 Bean 实现了 BeanClassLoaderAware 接口,调用 setBeanClassLoader()方法,传入
ClassLoader对象的实例。
与上面的类似,如果实现了其他 *.Aware接口,就调用相应的方法。
如果有和加载这个 Bean 的 Spring 容器相关的 BeanPostProcessor
对象,执行postProcessBeforeInitialization() 方法 (BeanPostProcessor的before方法)
如果Bean实现了InitializingBean接口,执行afterPropertiesSet()方法。(afterPropertiesSet方法)
如果