IOC的组成体系结构
1、资源定位(配置文件定位)
2、载入(读取配置文件)
3、注册(把加载以后的配置文件解释成BeanDefinition)
依赖注入
1、读取BeanDefinition中的信息,获取其依赖关系,解释成BeanWapper
2、实例化(代理对象)createBeanInstance()方法,根据情况可能用JDK的代理,也可能用Cglib的代理,依赖关系,List,Array,Map,
3、注入设值,populateBean(),注入方法,做类型转换
factoryBeanObjectCache,这个ConcurrentHashMap,就是真正的spring的IOC容器
lazy-init ,如果使用了延时,,依赖注入这个动作发生在调用getBean方法的时候,
spring-bean 定义的是接口规范,里面大部分都是接口
spring-context工厂的实现、DI的实现
spring-core是最顶层的,所有的项目都要依赖