spring 中是我们常见的bean bean的生命周期以及初始化过程
Spring ioc(控制反转)
1 ClassPathXmlApplicationContext类 容器加载配置文件bean.xml 文件 通过构造方法
2 AbstractApplicationContext 在这个类中初始化 refresh()方法
调用obtainFreshBeanFactory()
加载loadBeanDefinitions()方法 加载配置文件路径
XmlBeanDefinationReader、加载xml文件
解析xml文件
registerBeanDefinaton()
3 在finishBeanFactoryInitialization() 中完成bean的 初始化
在类DefaultListableBeanFactory preInstantiateSingletons()方法
AbstractBeanFactory 类 调用getBean() doGetBean() createBean()方法
AbstractAutowireCapableBeanFactory 类中的 createBean() doCreateBean()方法 创建bean的实例
this.populateBean()方法给属性赋值
初始化bean 这个方法完成bean的代理
AbstractAutoProxyCreator类完成对象的代理
createProxy()方法
DefaultAopProxyFactory 类 createAopProxy()判断代理模式
从ioc容器中获取
在DefaultSingletonBeanRegistry 类中获取bean spring 的三级缓存
包括bean的前置和后置处理器
bean的使用完之后 就destory()方法销毁
Spring DI (依赖注入) 图解