IOC的組成體系結(jié)構(gòu)
1蕉汪、資源定位(配置文件定位)
2盟蚣、載入(讀取配置文件)
3刺覆、注冊(cè)(把加載以后的配置文件解釋成BeanDefinition)
依賴(lài)注入
1、讀取BeanDefinition中的信息姨涡,獲取其依賴(lài)關(guān)系衩藤,解釋成BeanWapper
2、實(shí)例化(代理對(duì)象)createBeanInstance()方法涛漂,根據(jù)情況可能用JDK的代理赏表,也可能用Cglib的代理检诗,依賴(lài)關(guān)系,List瓢剿,Array逢慌,Map,
3间狂、注入設(shè)值攻泼,populateBean(),注入方法鉴象,做類(lèi)型轉(zhuǎn)換
factoryBeanObjectCache忙菠,這個(gè)ConcurrentHashMap,就是真正的spring的IOC容器
lazy-init 纺弊,如果使用了延時(shí)牛欢,,依賴(lài)注入這個(gè)動(dòng)作發(fā)生在調(diào)用getBean方法的時(shí)候淆游,
spring-bean 定義的是接口規(guī)范傍睹,里面大部分都是接口
spring-context工廠的實(shí)現(xiàn)、DI的實(shí)現(xiàn)?
spring-core是最頂層的犹菱,所有的項(xiàng)目都要依賴(lài)