下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

spring MVC是什么?带你理解spring MVC

作者:课课家教育     来源: http://www.kokojia.com点击数:2514发布时间: 2018-01-05 16:00:10

标签: webspring设计模式

  spring MVC属于SpringFrameWork的后续产品,已经融合在Spring web Flow里面。Spring MVC 是spring框架最重要的的模块之一。它以强大的Spring IoC容器为基础,并充分利用容器的特性来简化它的配置。今天学习的内容就是spring MVC,感兴趣的朋友就跟着我们一起来学习吧!
  在讲spring MVC之前我们先来看看什么是MVC模式
  MVC:模型-视图-控制器(MVC)是一个众所周知的以设计界面应用程序为基础的设计模式。它主要通过分离模型、视图及控制器在应用程序中的角色将业务逻辑从界面中解耦。通常,模型负责封装应用程序数据在视图层展示。视图仅仅只是展示这些数据,不包含任何业务逻辑。控制器负责接收来自用户的请求,并调用后台服务(manager或者dao)来处理业务逻辑。处理后,后台业务层可能会返回了一些数据在视图层展示。控制器收集这些数据及准备模型在视图层展示。MVC模式的核心思想是将业务逻辑从界面中分离出来,允许它们单独改变而不会相互影响。
  MVC的原理图:
  spring MVC是什么?带你理解spring MVC_web_spring_设计模式_课课家教育
  分析:
  M-Model 模型(完成业务逻辑:有javaBean构成,service+dao+entity)
  V-View 视图(做界面的展示 jsp,html……)
  C-Controller 控制器(接收请求->调用模型->根据结果派发页面)
  Spring MVC是什么:
  Spring MVC是一个MVC的开源框架,springMVC=struts2+spring,springMVC就相当于是Struts2加上sring的整合,但是这里有一个疑惑就是,springMVC和spring是什么样的关系呢?这个在百度百科上有一个很好的解释:意思是说,springMVC是spring的一个后续产品,其实就是spring在原有基础上,又提供了web应用的MVC模块,可以简单的把springMVC理解为是spring的一个模块(类似AOP,IOC这样的模块),网络上经常会说springMVC和spring无缝集成,其实springMVC就是spring的一个子模块,所以根本不需要同spring进行整合。
  Spring MVC的原理图:
  spring_设计模式_xml
  看到这个图大家可能会有很多的疑惑,现在我们来看一下这个图的步骤:(可以对比MVC的原理图进行理解)
  第一步:用户发起请求到前端控制器(DispatcherServlet)
  第二步:前端控制器请求处理器映射器(HandlerMappering)去查找处理器(Handle):通过XML配置或者注解进行查找
  第三步:找到以后处理器映射器(HandlerMappering)像前端控制器返回执行链(HandlerExecutionChain)
  第四步:前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)去执行处理器(Handler)
  第五步:处理器适配器去执行Handler
  第六步:Handler执行完给处理器适配器返回ModelAndView
  第七步:处理器适配器向前端控制器返回ModelAndView
  第八步:前端控制器请求视图解析器(ViewResolver)去进行视图解析
  第九步:视图解析器像前端控制器返回View
  第十步:前端控制器对视图进行渲染
  第十一步:前端控制器向用户响应结果
  看到这些步骤我相信大家很感觉非常的乱,这是正常的,但是这里主要是要大家理解springMVC中的几个组件:
  前端控制器(DispatcherServlet):接收请求,响应结果,相当于电脑的CPU。
  处理器映射器(HandlerMapping):根据URL去查找处理器
  处理器(Handler):(需要程序员去写代码处理逻辑的)
  处理器适配器(HandlerAdapter):会把处理器包装成适配器,这样就可以支持多种类型的处理器,类比笔记本的适配器(适配器模式的应用)
  视图解析器(ViewResovler):进行视图解析,多返回的字符串,进行处理,可以解析成对应的页面
  Spring MVC的一些优点
  1、用@RequestParam获取HttpServletRequest里的参数值相当方便,spring可以进行自动的类型转换
  2、对于Restful的支持,结合@RequestMapping的UriTemplate和method以及@PathVariable,非常方便地实现了restful的url
  3、对于Ajax的支持,@RespsonseBody提供了方便的机制
  4、灵活丰富的@Controller的函数返回类型
  5、可以方便地给@Controller函数注入各种资源
  以上的内容对spring MVC进行了简单的介绍,感兴趣的朋友可以深入学习。喜欢我们的分享,不妨关注课课家吧~

赞(14)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程