SpringMVC原理
SpringMVC原理大概分为两个步骤:
- 初始化阶段
- 调用阶段
1. 初始化阶段
从Servlet的init()方法入口,最终调用DispatchServlet的onRefresh()方法初始化9大组件,其中比较核心的三大组件:
- HandlerMapping:保存Url与Method的对应关系
- HandlerAdapter:适配器,动态解析客户端传入的参数,并通过反射执行Method方法
- ViewResolver:视图解析器,通过方法返回的内容进行解析
2. 调用阶段
从DispatchServlet的doService方法入口,进入doDispatch方法。根据客户端请求的URL找到对应的Handler对象,再根据Handler对象找到器对应的Adapter适配器对参数进行解析,最后通过反射执行Method方法。如果方法返回的是ModelAndView,则通过视图解析器找到对应的View,通过view的render方法渲染页面,返回给客户端。如果返回的不是ModelAndView则直接将数据输出到页面。