更新時間:2020-02-17 13:14:47 來源:動力節點 瀏覽2319次
話說工欲善其事必先利其器,一個優秀的web框架可以說是程序員的利器,Spring框架應是其中牛角,有了它程序員可以更好的關注業務和功能的實現,編碼水平瞬間被提升了一個等級,然而在每天使用框架的時候,很多參加JAVA培訓的同學會好奇或者迷惑,為什么它能夠運行起來?為什么僅是添加一個注解就能夠將一個實例賦值給一個被注解的變量?那些聽起來高端的概念(如:IOC、DI、AOP等)是如何實現的呢?
本文我們將通過實現一個簡單的JavaWeb框架來理解框架的工作原理和IOC等概念的實現,暫且叫它fine。
首先給出JavaWeb框架工作流程:
下面是具體實現:
1.創建一個maven項目實現fine框架創建mavne項目添加相關依賴,需要的包大致有:servlet、jsp、jstl、log4j、mysql、json、等以及一些工具包,如果你不打算使用視圖層可以忽略jsp和jstl的依賴包。
2.編寫加載配置項的工具類ConfigHelper。加一些需要的配置變量。
3.開發類加載器ClassUtil。在程序啟動之初加載基礎包下所有類。
4.編寫注解類,比如@Action(接受http請求的方法),@Inject(依賴注入)等。注解的概念在書《Java編程思想》中介紹的很清楚,是一種標記,本框架中的注解就是為了在運行中框架能夠讓程序知道被注解的類、方法或者變量有哪些。
5.實現Bean容器ClassHelper。利用反射機制,將上一步加載的類實例化成對象,并將這些對象放入一個靜態的Map中,此Map就是Bean容器,它記錄了類與對象的關系,以后需要單例的對象時就從Bean容器中取出。
6.實現依賴注入,也就是IoC(控制反轉),框架來控制對象之間的依賴關系,將一個對象賦值給一個加了相應標記(注解)的變量。具體實現過程是將第4步中的Bean容器(Map)做遍歷操作,查看當前類的成員變量是否帶有Inject注解,若帶有該注解,就從Bean容器中取出對象,賦值給當前成員變量。
7.實現Controller層,通過一個類ControllerHelper統計請求路徑與方法的對應關系。通過反射獲取帶有@Action注解的方法,獲取@Action注解中的請求表達式(請求路徑信息),封裝一個請求對象(Request)與處理對象(Handler),將Request與Handler建立映射關系,處理請求。
8.實現一個請求轉發器,處理所有請求,從HttpServletRequest對象中獲取請求路徑與參數,將請求路徑與ControllerHelper統計的請求路徑做對應關系,并將參數傳入ControllerHelper中的相應方法。
至此,一個能夠處理http請求的框架終于開發完成,其中還有很多不足之處,但是通過此框架能夠深入的理解現在工程中使用的優秀框架的工作原理,有利于我們更好的在實際中排查問題,甚至定義一些特定規則優化現有框架。
框架相關視頻教程
struts入門教程:http://www.dabaquan.cn/v36/
hibernate入門教程:http://www.dabaquan.cn/v39/
Java spring框架教程:http://www.dabaquan.cn/v38/
全套免費ssm整合視頻教程:http://www.dabaquan.cn/v92/
以上就是動力節點Java培訓機構小編介紹的“如何自學Java web框架”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
相關內容
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習