1. 程式人生 > >手寫精簡版spring 框架後對ioc的體會

手寫精簡版spring 框架後對ioc的體會

spring是如何初始化的?如何處理請求?

以前對於spring 都是停留在會用的層面,閒下來 參照資料  寫了一個精簡版的spring  理解了一下 其中的具體內容。

總結如下:(自己看著總結的,如果哪裡不對  請大家指出)

spring初始化

1. 拿到spring配置檔案,獲取掃描包名字(自動掃包註解)
2.遞迴掃描包下檔案,存入list

物件例項化
3.通過反射例項化 含有  service和Controller  註解的物件  存入map

物件注入
3.取出map中物件 中 所有注入的物件  通過  Field.set("需要注入的例項",“注入的例項”)


4初始化請求鏈,遍歷map 物件的所有方法  ,   拼接url 存入   map(url,method)。


spring處理請求
5當請求到達前端控制器時:
5.1 解析uri 獲得專案名  replace   獲得 請求url
5.2 通過請求rul  在map中獲取對應的mehtod
5.3 通過Controller 名稱獲取Controller 物件
5.4 通過反射 執行 method.invoke(Controller , new Object[] { req, resp, null });

以上是對spring ioc的一點理解。