天天看點

一個小時,200行代碼,手寫Spring的IOC、DI、MVC

一、概述

一個小時,200行代碼,手寫Spring的IOC、DI、MVC

配置階段:主要是完成application.xml配置和Annotation配置。

初始化階段:主要是加載并解析配置資訊,然後,初始化IOC容器,完成容器的DI操作,已經完成HandlerMapping的初始化。

運作階段:主要是完成Spring容器啟動以後,完成使用者請求的内部排程,并傳回響應結果。

一個小時,200行代碼,手寫Spring的IOC、DI、MVC

 二、配置

1、pom内部隻使用servlet作為依賴

2、建立GPDispatcherServlet類繼承HTTPServlet,重寫init、doGet(調用後者)和doPost

3、web.xml配置servlet類以及初始化參數,即Spring的配置檔案contextConfigLoaction=application.properties(内部配置掃描的包)

3、配置注解service、controller(本質是接口)以及元注解

一個小時,200行代碼,手寫Spring的IOC、DI、MVC

 4、可以進行測試-resp.getWriter().write(xxx)

三、初始化階段

1、聲明所需的成員變量---IOC<S,O>,urlde handlerMapping<S,M>

一個小時,200行代碼,手寫Spring的IOC、DI、MVC

2、init方法實作:加載配置、掃描相關的類、初始化類執行個體并儲存到ioc容器、依賴注入、構造handlerMapping

3、doLoadConfig()

4、doScanner():遞歸掃描類檔案

5、doInstance():對類初始化并放至容器

6、doAutowired():DI操作,将需要指派的字段指派

7、initHandlerMapping():映射,将url和方法關聯

四、運作階段

1、doPost内部調用doDispatch

2、doDispatch():擷取參數清單,,初始化類,根據url,利用反射機制,調用方法

參考資料:https://gper.club/articles/7e7e7f7ff0g52gce

錄播連結:https://pan.baidu.com/s/1YGJ5xFVIWYjalHdwwipxlg 

提取碼: