欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂教你10分鐘實現(xiàn)一個Java Web框架

2018-08-09 09:25:20 1203瀏覽

話說工欲善其事必先利其器,一個優(yōu)秀的web框架可以說是程序員的利器,Spring框架應是其中牛角,有了它程序員可以更好的關注業(yè)務和功能的實現(xiàn),編碼水平瞬間被提升了一個等級,然而在每天使用框架的時候,很多參加JAVA培訓的同學會好奇或者迷惑,為什么它能夠運行起來?為什么僅是添加一個注解就能夠將一個實例賦值給一個被注解的變量?那些聽起來高端的概念(如:IOC、DI、AOP等)是如何實現(xiàn)的呢?

本文我們將通過實現(xiàn)一個簡單的JavaWeb框架來理解框架的工作原理和IOC等概念的實現(xiàn),暫且叫它fine。

首先給出JavaWeb框架工作流程:

 

 

下面是具體實現(xiàn):

1.創(chuàng)建一個maven項目實現(xiàn)fine框架創(chuàng)建mavne項目添加相關依賴,需要的包大致有:servlet、jsp、jstl、log4j、mysql、json、等以及一些工具包,如果你不打算使用視圖層可以忽略jsp和jstl的依賴包。

2.編寫加載配置項的工具類ConfigHelper。加一些需要的配置變量。

3.開發(fā)類加載器ClassUtil。在程序啟動之初加載基礎包下所有類。

4.編寫注解類,比如@Action(接受http請求的方法),@Inject(依賴注入)等。注解的概念在書《Java編程思想》中介紹的很清楚,是一種標記,本框架中的注解就是為了在運行中框架能夠讓程序知道被注解的類、方法或者變量有哪些。

5.實現(xiàn)Bean容器ClassHelper。利用反射機制,將上一步加載的類實例化成對象,并將這些對象放入一個靜態(tài)的Map中,此Map就是Bean容器,它記錄了類與對象的關系,以后需要單例的對象時就從Bean容器中取出。

6.實現(xiàn)依賴注入,也就是IoC(控制反轉),框架來控制對象之間的依賴關系,將一個對象賦值給一個加了相應標記(注解)的變量。具體實現(xiàn)過程是將第4步中的Bean容器(Map)做遍歷操作,查看當前類的成員變量是否帶有Inject注解,若帶有該注解,就從Bean容器中取出對象,賦值給當前成員變量。

7.實現(xiàn)Controller層,通過一個類ControllerHelper統(tǒng)計請求路徑與方法的對應關系。通過反射獲取帶有@Action注解的方法,獲取@Action注解中的請求表達式(請求路徑信息),封裝一個請求對象(Request)與處理對象(Handler),將Request與Handler建立映射關系,處理請求。

8.實現(xiàn)一個請求轉發(fā)器,處理所有請求,從HttpServletRequest對象中獲取請求路徑與參數(shù),將請求路徑與ControllerHelper統(tǒng)計的請求路徑做對應關系,并將參數(shù)傳入ControllerHelper中的相應方法。

至此,一個能夠處理http請求的框架終于開發(fā)完成,其中還有很多不足之處,但是通過此框架能夠深入的理解現(xiàn)在工程中使用的優(yōu)秀框架的工作原理,有利于我們更好的在實際中排查問題,甚至定義一些特定規(guī)則優(yōu)化現(xiàn)有框架。


以上就是扣丁學堂Java在線學習小編給大家分享的文章,希望對小伙伴們有所幫助,想要了解更多關于Java開發(fā)內容的小伙伴可以登錄扣丁學堂官網(wǎng)咨詢,扣丁學堂有專業(yè)的Java培訓班邀請有理想的你加入??鄱W堂不僅有專業(yè)的Java培訓班供大家學習,還有與時俱進的課程體系和大量的Java在線視頻教程讓學員免費觀看學習,想要學好Java開發(fā)的小伙伴快到扣丁學堂來了解詳情吧??鄱W堂Java技術交流群:670348138。

【關注微信公眾號獲取更多學習資料】

 

 

查看更多關于“Java開發(fā)資訊的相關文章>>

標簽: JAVA培訓 JAVA視頻教程 JAVA開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部