更新時間:2019-09-20 10:37:08 來源:動力節(jié)點(diǎn) 瀏覽3391次
關(guān)于javaweb框架不用我說,大家都知道,無非就是SSM,SSH。但是可能一大部分人只知道如何使用,卻不知道源碼是怎么實(shí)現(xiàn)從接口路由到url請求方法。今天小編就教大家手寫一個基本的mvc框架。今天主要介紹下url地址是怎么和我們的controller方法做映射的。
相信絕大部分程序員都知道,springmvc的核心處理器就是Dispaservlet。在servlet生命周期中有個init方法。他可以用來初始化一些系統(tǒng)配置。不過大家別忘了servletapi中還提供了一個ServletContextListener接口。此接口提供了一個初始化方法和一個銷毀方法。ServletContextListener接口contextInitialized方法優(yōu)先于HttpServlet中的init方法。在此,我們將使用contextInitialized用來加載系統(tǒng)基礎(chǔ)配置(比如加載初始化所有的Controller類)。好了下面說下簡單的思路。首先我們創(chuàng)建一個Controller的注解類,代碼如下:

然后寫一個ServletContextListener的實(shí)現(xiàn)類,代碼如下:



在contextInitialized方法中主要用來加載所有的Controller類,然后通過反射獲取類中的方法,在通過方法對象去獲取RequestMapping,然后將RequestMapping中的value值作為key,方法名作為value值存入map當(dāng)中。以下就完成了url和controller方法的映射。下面介紹如何通過url去執(zhí)行對應(yīng)的controller,這個主要通過httpServlet來實(shí)現(xiàn)了。主要代碼如下:

以上就是動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)小編為大家介紹的“Java高手教你如何手寫一個基礎(chǔ)的mvc框架?”的內(nèi)容,希望對大家有幫助,更多java最新資訊請繼續(xù)關(guān)注動力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會有精彩內(nèi)容分享與你。
相關(guān)閱讀

初級 202925

初級 203221

初級 202629

初級 203743