1.MVC概述
MVC(Model–view–controller)是软件工程中的一种软件架构模式,基于此模式把软件系统分为三个根本局部:模型(Model)、视图(View)和控制器(Controller)。目标是通过这样的设计使程序结构更加简洁、直观,升高问题的复杂度。其中各个组成部分的职责为:
- 视图(View) - UI设计人员进行图形界面设计,负责实现与用户交互。
- 控制器(Controller)- 负责获取申请,解决申请,响应后果。
- 模型(Model) - 实现业务逻辑,数据逻辑实现。
咱们在软件设计时,通常要遵循肯定的设计准则。MVC架构模式的设计中,首先基于繁多职责准则(SRP-Single responsibility principle)让每个对象各司其职,各尽所能。而后再基于“高内聚,低耦合”的设计思维实现相干层对象之间的交互。这样能够更好进步程序的可维护性和可扩展性。
Spring MVC 是Spring 框架中基于MVC设计思维实现的一个用于解决Web申请的模块。其繁难架构剖析,如图所示:
外围组件剖析:
- DispatcherServlet :前端控制器, 解决申请的入口。
- HandlerMapping:映射器对象, 用于治理url与对应controller的映射关系。
- Interceptors:拦截器,实现申请响应的共性解决。
- Controller:后端控制器-handler, 负责解决申请的管制逻辑。
- ViewResolver:视图解析器,解析对应的视图关系(前缀+viewname+后缀)。
2.SpringMVC的工作原理
1、客户端收回一个http申请给web服务器,web服务器对http申请进行解析,如果匹配DispatcherServlet的申请映射门路(在web.xml中指定),web容器将申请转交给DispatcherServlet.
2、DipatcherServlet接管到这个申请之后将依据申请的信息(包含URL、Http办法、申请报文头和申请参数Cookie等)以及HandlerMapping的配置找到解决申请的处理器(Handler)。
3-4、DispatcherServlet依据HandlerMapping找到对应的Handler,将处理权交给Handler(Handler将具体的解决进行封装),再由具体的HandlerAdapter对Handler进行具体的调用。
5、Handler对数据处理实现当前将返回一个ModelAndView()对象给DispatcherServlet。
6、Handler返回的ModelAndView()只是一个逻辑视图并不是一个正式的视图,DispatcherSevlet通过ViewResolver将逻辑视图转化为真正的视图View。
7、Dispatcher通过model解析出ModelAndView()中的参数进行解析最终展现出残缺的view并返回给客户端。