自定義mvc框架(有代碼)

會逐步添加AOP

總結:搭建了一個簡單的MVC框架,定義了一系列的註解,@Controller定義Controller類,@Inject註解實現依賴注入,@Action定義Action方法。通過Helper類來初始化MVC框架;通過DispatcherServlet來處理所有請求;根據請求方法與請求路徑來調用具體的Action方法,判斷Action方法的返回值,若爲View類型,跳轉JSP頁面,若爲Data類型,則返回JSON數據。

1.建立PropsUtil工具類(加載屬性文件以及獲取屬性)
2.建立ArrayUtil工具類(判斷數組是否爲空等)
3.建立CollectionUtil工具類(判斷Collection(Map)是否爲空)
4.建立StreamUtil工具類(流操作工具類,如:從輸入流獲取字符串)
5.建立CodecUtil工具類(用於URL的編碼與解碼操作)
6.建立jsonUtil工具類(處理Json與POJO之間的轉換,基於jackson實現)

1.建立ConfigConstant的常量類(維護配置文件——smart.properties的相關配置,如:jdbc相關內容——名字(如:String
JDBC_URL=“smart.framework.jdbc.url”))
2.建立ConfigHelper助手類(定義靜態方法——關於獲取常量類中所包含的內容的靜態方法(如:getJdbcUsername()))
3.建立一個ClassUtil工具類(提供與類操作相關的方法,如:獲取類加載器、加載類、獲取類等)
4.建立註解類(如:@Controller、@Action、@Service、@Inject)
5.建立ClassHelper助手類(類操作助手類,封裝ClassUtil,讓其獲取應用包名下所有類、Service類、Controller類和Bean類)
6.建立一個反射工具類——ReflectionUtil(通過類來實例化對象——實現Bean容器)
7.建立Bean助手類(Bean容器)——BeanHelper(封裝反射工具類,獲取或設置Bean的實例及映射)
8.創建IocHelper助手類(完成依賴注入功能,從BeanHelper獲取BeanMap(記錄了類與對象的映射關係),遍歷這個映射關係,取出裏面的Bean類和Bean對象,在通過反射獲取類的成員變量。遍歷這些變量,判斷是否帶有注入註解,如果存在,從BeanMap中取出Bean實例,然後通過RelfectionUtil修改當前成員變量的值)
9.建立實體類——Request類(封裝請求信息,如:方法、路徑)
10.建立實體類——Handle類(封裝Action信息——處理對象,如:Controller類、Action方法)
11.創建ControllerHelper類(獲取定義了Controller註解的類,可以通過反射獲取該類中所有帶有某註解(如:Action)的方法,獲取註解中的請求表達式,進而獲取請求方法與請求路徑,封裝請求對象與處理對象,建立映射關係,放入Map中,並提供一個根據請求方法與請求路徑獲取處理對象的方法)
12.各個助手類的靜態代碼塊會被加載,可以建立一個統一的類集中加載——HelperLoader類
13.建立實體類——Param(封裝請求參數對象,是一個Map)
14.建立實體類——View類(返回視圖,path——視圖路徑、model——模型數據是個Map)
15.建立實體類——Data類(返回數據類型爲json——Object)
16.建立請求轉發器——DispatcherServlet(繼承HttpServlet類)類(初始化、獲取對象、註冊jsp的servlet,註冊靜態資源默認servlet,重寫service方法(獲取請求方法與請求路徑、action處理器、獲取Controller類及其Bean實例、創建請求參數對象、調用Action方法、處理Action方法——返回視圖或者數據(request的forward方法還或者輸出json數據)))

源代碼下載:https://download.csdn.net/download/weixin_43075298/11123094

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章