【源码】手写SpringMVC框架源码(一)

SpringMVC框架

标注@Controller,注释controller层
标注@Service,注释service层
标注@RequestMapping("/login"),表示访问链接
标注@RequestParam(“name”),表示链接参数
标注@Autowired,表示自动注入

最终效果:浏览器访问localhost:8080/login,执行controller中标注@RequestMapping("/login")的方法
【源码】手写SpringMVC框架源码(一)

HandlerMethod初始化

思考:将标注的访问链接和方法,使用map初始化出来。key存放链接,value存放方法名称。获取到访问链接后,直接去map中查找对应的执行方法。
【源码】手写SpringMVC框架源码(一)

HttpServlet方法

HttpServlet有3个主要方法,init、doGet、doPost。init会在项目初始化时运行,doGet和doPost分别在有get和post请求是调用。因此,可以HandlerMethod在init中初始化好,doGet或者doPost时,获取到访问链接,执行对应的方法
【源码】手写SpringMVC框架源码(一)

SpringMVC框架图

经过上述分析,SpringMVC最为重要的逻辑就是HandlerMethod的初始化和后续的访问。
【源码】手写SpringMVC框架源码(一)