Spring MVC 学习总结(内含Spring MVC简单框架)

 个人根据SpringMVC框架底层代码编写的简易框架(简单实现)my-springMVC-ljw: 个人根据Spring MVC底层代码编写的一个简单的Spring MVC框架icon-default.png?t=N7T8https://gitee.com/li-bin-jw/my-spring-mvc-ljw.git

一.初识Spring MVC(简介)

     1.引入MVC

      MVC架构模式的描述:前端浏览器发送请求给web服务器,web服务器中的Controller接收到用户的请求,Controller负责将前端提交的数据进行封装,然后Controller调用Model来处理业务,当Model处理完业务后会返回处理之后的数据给Controller,Controller再调用View来完成数据的展示,最终将结果响应给浏览器,浏览器进行渲染展示页面。

     1.1 MVC是一种软件架构模式(不仅限于java)它将应用分为三块:

             M:Model(模型):负责业务处理及数据的收集。

             V:View(视图):负责数据的展示

             C:Controller(控制器):负责调度。它是一个调度中心,它来决定什么时候调用Model                来处理业务,什么时候调用View视图来展示数据。

     分成三部分的优点:

        低耦合,扩展能力增强、代码复用性增强、代码可维护性增强、高内聚,让程序员更加专注业务的开发。

拓展:什么是三层模型,并说一说MVC架构模式与三层模型的区别?

MVC 和三层模型都采用了分层结构来设计应用程序,都是降低耦合度,提高扩展力,提高组件复用性。区别在于:他们的关注点不同,三层模型更加关注业务逻辑组件的划分。 MVC架构模式关注的是整个应用程序的层次关系和分离思想。现代的开发方式大部分都是MVC架构模式结合三层模型一起用。

如图所示

         

2.SpringMVC

   SpringMVC是一个实现了MVC架构模式的Web框架,底层基于Servlet实现。 SpringMVC已经将MVC架构模式实现了,因此只要我们是基于SpringMVC框架写代码,编写的程序就是符合MVC架构模式的。(MVC的架子搭好了,我们只需要添添补补) 另外,使用SpringMVC框架的时候同样也可以使用IoC和AOP。

   2.1 SpringMVC可以帮我们做什么?

  1. 入口控制:SpringMVC框架通过DispatcherServlet作为入口控制器,负责接收请求和分发请求。而在Servlet开发中,需要自己编写Servlet程序,并在web.xml中进行配置,才能接受和处理请求。

  2. 在SpringMVC中,表单提交时可以自动将表单数据绑定到相应的JavaBean对象中,只需要在控制器方法的参数列表中声明该JavaBean对象即可,无需手动获取和赋值表单数据。而在纯粹的Servlet开发中,这些都是需要自己手动完成的。

  3. IoC容器:SpringMVC框架通过IoC容器管理对象,只需要在配置文件中进行相应的配置即可获取实例对象,而在Servlet开发中需要手动创建对象实例。

  4. 统一处理请求:SpringMVC框架提供了拦截器、异常处理器等统一处理请求的机制,并且可以灵活地配置这些处理器。而在Servlet开发中,需要自行编写过滤器、异常处理器等,增加了代码的复杂度和开发难度。

  5. 视图解析:SpringMVC框架提供了多种视图模板,如JSP、Freemarker、Velocity等,并且支持国际化、主题等特性。而在Servlet开发中需要手动处理视图层,增加了代码的复杂度。

总之,与Servlet开发相比,SpringMVC框架可以帮我们节省很多时间和精力,减少代码的复杂度,更加专注于业务开发。同时,也提供了更多的功能和扩展性,可以更好地满足企业级应用的开发需求。

     2.2 SpringMVC框架的特点

  1. 轻量级:相对于其他Web框架,Spring MVC框架比较小巧轻便。(只有几个几百KB左右的Jar包文件)

  2. 模块化:请求处理过程被分成多个模块,以模块化的方式进行处理。

    1. 控制器模块:Controller

    2. 业务逻辑模块:Model

    3. 视图模块:View

  3. 依赖注入:Spring MVC框架利用Spring框架的依赖注入功能实现对象的管理,实现松散耦合。

  4. 易于扩展:提供了很多口子,允许开发者根据需要插入自己的代码,以扩展实现应用程序的特殊需求。

    1. Spring MVC框架允许开发人员通过自定义模块和组件来扩展和增强框架的功能。

    2. Spring MVC框架与其他Spring框架及第三方框架集成得非常紧密,这使得开发人员可以非常方便地集成其他框架,以获得更好的功能。

  5. 易于测试:支持单元测试框架,提高代码质量和可维护性。 (对SpringMVC中的Controller测试时,不需要依靠Web服务器。)

  6. 自动化配置:提供自动化配置,减少配置细节。

    1. Spring MVC框架基于约定大于配置的原则,对常用的配置约定进行自动化配置。

  7. 灵活性:Spring MVC框架支持多种视图技术,如JSP、FreeMarker、Thymeleaf、FreeMarker等,针对不同的视图配置不同的视图解析器即可。

 3.3 SpringMVC项目简单搭建

    

3.4 SpringMVC工作流程

用户发送请求至前端控制器DispatcherServlet
1.DispatcherServlet收到请求调用HandlerMapping处理器映射器。
2.处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给3.DispatcherServlet。
4.DispatcherServlet调用HandlerAdapter处理器适配器
5.HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6.Controller执行完成返回ModelAndView
7.HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8.DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9.ViewReslover解析后返回具体View
10.DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11.DispatcherServlet响应用户

  • 13
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值