Spring boot mvc HelloWord
Spring MVC是目前主流的实现MVC设计模式的企业级开发框架,Spring框架的一个子模块,无需整合,开发起来更加便捷。
spring mvc 是什么?
在web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法。
Spring MVC就是对这套流程的封装,屏蔽了很多底层代码,开放出接口,使开发者更加轻松和便捷的开发出web应用
springMVC 原理
绿色填充模块为springMVC的组件
-
前端控制器 DispatcherServlet
作用:接收请求,响应,也是中央转发器
-
处理器映射器 HandlerMapping
作用:根据url查找Handler
-
处理器适配器 HandlerAdapter
作用:按照特定规则去执行Handler,规则即HandlerAdapter要求的规则 注意:编写Handler时需要按HandlerAdapter要求去编写,这样适配器才可以去正确执行Handler
-
视图解析器 ViewResolver
作用:根据逻辑视图解析成真正的视图(view)
-
视图 View
View 是一个接口,实现类支持不同的view类型(jsp,FreeMarker,pdf,excel...)
spring mvc 核心组件
-
DispatcherServlet:前置控制器,是整个流程控制的核心,控制其他组件的执行,进行统一调度,降低组件之间的耦合性,相当于总指挥。
-
Handler:处理器,完成具体的业务逻辑,相当于Servlet和Action。
-
HandlerMapping:DispatcherServlet接受请求之后,通过HandlerMapping将不同的请求映射到不同的Handler。
-
HandlerInterceptor:处理器拦截器,是一个接口,如果需要完成一些拦截器处理,可以实现该接口。
-
HandleExecutionChain:处理器执行链,包括两部分内容:Handler和HanlerInterceptor(系统会有一个默认HanlerInterceptor,如果需要各位设置拦截,可以添加拦截器)。
-
HandlerAdapter:处理器适配器,Handler执行业务方法之前,需要进行一系列的操作包括表单数据的验证、数据类型的转换、将表单数据分装到javabean等。这些操作都是由HandlerAdapter完成,开发者注意力集中在业务逻辑的处理上,DispatcherServlet通过HandlerAdapter执行不同的Handler.
-
ModelAndView: 装载了模型数据和视图信息,作为Handler的处理结果,返回给DispatcherServlet。
-
ViewResolver:视图解析器,DispatcherServlet通过它将逻辑视图解析为物理视图。
Spring MVC的工作流程
-
客户端请求被DispatcherServlet接受。
-
根据HandlerMapping映射到Handler
-
生成Handler和HandlerInterceptor。
-
Handler和HandlerInterceptor以HandleExecutionChain的形式一并返回给DispatcherServlet。
-
DispatcherServlet通过HandlerAdapter调用Handler的方法完成业务逻辑处理。
-
Handler返回ModelAndView给DispatcherServlet。
-
DispatcherServlet将获取的ModelAndView对象传给ViewResolver视图解析器,将逻辑视图解析为物理视图View。
-
ViewResolver返回一个View给DispatcherServlet。
-
DispatcherServlet根据View进行视图渲染(将模型数据Model填充到视图View中)。
-
DispatcherServlet将渲染后的结果上传服务器。
SpringMVC流程非常复杂,实际开发起中很简单,因为大部分的组件不需要开发者创建、管理,只需要通过配置文件的方式完成配置即可。真正需要开发者进行处理的只有Handler、View。