A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张11。。。 中级黑马   /  2019-5-14 16:06  /  1387 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张11。。。 于 2019-5-14 16:15 编辑

SpringMVC 介绍



一、了解SpringMVC
       大部分java应用都是web应用,展现层是web应用最为重要的部分,Spring为展现层提供了一个优秀的web框架—SpringMVC。和众多其他web框架一样,它基于MVC的设计理念,此外,它采用了松散耦合可插拔组件结构,比其他MVC框架更具扩展性和灵活性。
       SpringMVC通过一套MVC注解,让POJO成为处理的处理器,无需实现任何接口,同事,SpringMVC还支持REST风格的URL请求。
       此外,SpringMVC在数据绑定、试图解析、本地化处理及静态资源处理上都有许多不俗的表现。它在框架设计、扩展性、灵活性等方面全面超越了Struts、WebWork等MVC框架,从原来的追赶着一跃成为MVC的领跑者。
       SpringMVC框架围绕DispatcherServlet这个核心展开,DispatcherServlet是SpringMVC框架的总导演、总策划,它负责截获请求并将其分派给相应的处理器处 理。
二、了解MVC
        1、 模型(Model):负责封装应用的状态,并实现应用的功能。通常分为数据模型和业务逻辑模型,数据模型用来存放业务数据,比如订单信息、用户信息等;而 业务逻辑模型包含应用的业务操作,比如订单的添加或者修改等。通常由java开发人员编写程序完成,代码量最多
   2、 视图(View):视图通过控制器从模型获得要展示的数据,然后用自己的方式展现给用户,相当于提供界面来与用户进行人机交互。通常由前端和java开发人员成,代码量较多。
   3、 控制器(Controller):用来控制应用程序的流程和处理用户所发出的请求。当控制器接收到用户的请求后,会将用户的数据和模型的更新相映射,也就是调用模型   来实现用户请求的功能;然后控制器会选择用于响应的视图,把模型更新后的数据展示给用户。起到总调度的作用,Controller通常由框架实现,使用时基本不需要编写代码


三、Springmvc架构
       1. 用户发送请求到DispatcherServlet 控制器
       2. DispatcherServlet控制器根据请求路径到HandlerMapping映射器查询具体的handler处理器
       3. HandlerMapping映射器根据用户请求查找与之对应的HandlerExecutionChain执行链再回传给DispatcherServlet控制器
       4. DispatcherServlet控制器根据handler具体的实现方式调用HandlerAdapter适配器
       5.HandlerAdapter适配器调用具体的handler处理器处理业务并返回ModelAndViewDispatcherServlet控制器
       6. DispatcherServlet控制器将ModelAndView专递到ViewResolver视图解析器
       7.ViewResolver视图解析器 返回具体的视图到DispatcherServlet控制器
       8. DispatcherServlet控制器渲染视图后响应给用户

四、Springmvc常用注解:
        @Controller
         负责注册一个bean 到spring 上下文中
       @RequestMapping
         注解为控制器指定可以处理哪些 URL 请求
       @RequestBody
         该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上 ,再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上
       @ResponseBody
         该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区
        @ModelAttribute    
         在方法定义上使用 @ModelAttribute 注解:Spring MVC 在调用目标处理方法前,会先逐个调用在方法级上标注了@ModelAttribute 的方法
         在方法的入参前使用 @ModelAttribute 注解:可以从隐含对象中获取隐含的模型数据中获取对象,再将请求参数 –绑定到对象中,再传入入参将方 法 入参对象添    加到模型中
       @RequestParam 
         在处理方法入参处使用 @RequestParam 可以把请求参 数传递给请求方法
       @PathVariable
         绑定 URL 占位符到入参
       @ExceptionHandler
         注解到方法上,出现异常时会执行该方法
        @ControllerAdvice
         使一个Contoller成为全局的异常处理类,类中用@ExceptionHandler方法注解的方法可以处理所有Controller发生的异常

五、Springmvc与Struts2的区别
       1、springmvc基于方法开发的,struts2基于类开发的。springmvc将url和controller里的方法映射。映射成功后springmvc生成一个Handler对象,对像中只包括了一个method。方法执行结束,形参数据销毁。springmvc的controller开发类似web service开发。
       2、springmvc可以进行单例开发,并且建议使用单例开发,struts2通过类的成员变量接收参数,无法使用单例,只能使用多例。
       3、经过实际测试,struts2速度慢,在于使用struts标签,如果使用struts建议使用jstl。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马