關(guān)于javaweb框架不用我說,大家都知道,無非就是SSM,SSH。但是可能一大部分人只知道如何使用,卻不知道源碼是怎么實(shí)現(xiàn)從接口路由到url請(qǐng)求方法。今天小編就教大家手寫一個(gè)基本的mvc框架。今天主要介紹下url地址是怎么和我們的controller方法做映射的。
相信絕大部分程序員都知道,springmvc的核心處理器就是Dispaservlet。在servlet生命周期中有個(gè)init方法。他可以用來初始化一些系統(tǒng)配置。不過大家別忘了servletapi中還提供了一個(gè)ServletContextListener接口。此接口提供了一個(gè)初始化方法和一個(gè)銷毀方法。ServletContextListener接口contextInitialized方法優(yōu)先于HttpServlet中的init方法。在此,我們將使用contextInitialized用來加載系統(tǒng)基礎(chǔ)配置(比如加載初始化所有的Controller類)。好了下面說下簡(jiǎn)單的思路。首先我們創(chuàng)建一個(gè)Controller的注解類,代碼如下:
然后寫一個(gè)ServletContextListener的實(shí)現(xiàn)類,代碼如下:
在contextInitialized方法中主要用來加載所有的Controller類,然后通過反射獲取類中的方法,在通過方法對(duì)象去獲取RequestMapping,然后將RequestMapping中的value值作為key,方法名作為value值存入map當(dāng)中。以下就完成了url和controller方法的映射。下面介紹如何通過url去執(zhí)行對(duì)應(yīng)的controller,這個(gè)主要通過httpServlet來實(shí)現(xiàn)了。主要代碼如下:
以上就是天津卓眾教育java培訓(xùn)機(jī)構(gòu)小編為大家介紹的“Java高手教你如何手寫一個(gè)基礎(chǔ)的mvc框架?”的內(nèi)容,希望對(duì)大家有幫助,更多java最新資訊請(qǐng)繼續(xù)關(guān)注天津卓眾教育java培訓(xùn)機(jī)構(gòu)官網(wǎng),每天會(huì)有精彩內(nèi)容分享與你。