1.1 什么是Spring Mvc

  • 在JavaEE体系结构中一个应用可以划分为四个层次,从上到下分别是应用层、Web层、业务层、持久层,现在的项目大都是按照这种结构来开发,我们这一系列介绍的是Web层的处理框架Spring Mvc

  • Spring Web Mvc是一种基于Java的轻量级Web框架,使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发。

2.1 为什么要使用Spring Mvc

2.1.1 没有使用Spring Mvc会怎么样

在Web开发模式中,主要有两个开发模式,称为模式一(Mode I)和模式二(Mode II). 模式二是因为受不了模式一的缺点而进化出来的,而Spring Mvc则是模式二的进化版本,下面是两种模式的介绍:

  • 模式一(Mode I)指的就是在开发中将显示层、控制层、数据层的操作统一交给JSP或者JavaBean来进行处理!
    • 优点
      • 开发速度贼快,适合炒鸡简单的应用
    • 缺点
      • 程序的可读性差、复用性低、代码复杂!什么jsp代码、html代码都往上面写,这肯定很难阅读,很难重用!
      • 要求开发者不仅要掌握 Java ,还要有高超的前端水平
      • 前端和后端相互依赖,前端需要等待后端完成,后端也依赖前端完成,才能进行有效的测试

  • 模式二(Mode II)中所有的开发都是以Servlet为主体展开的,由Servlet接收所有的客户端请求,然后根据请求调用相对应的JavaBean,并所有的显示结果交给JSP完成!,也就是俗称的MVC设计模式

    • 优点
      • 相比模式一,耦合度降低了,添加了Servlet来协调视图处理及业务数据处理
    • 缺点

      • 需要定义大量的Servlet来处理应用
    • MVC设计模式

      • 模型层(Mode):模型是什么呢? 模型就是数据,就是 dao,bean
      • 显示层(View):视图是什么呢? 就是网页, JSP,用来展示模型中的数据
      • 控制层(Controller):控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色,在Spring MVC中DispatcherServlet就是这个特殊的控制器
  • 很多应用程序的问题在于处理业务数据的对象和显示业务数据的视图之间存在紧密耦合,

  • 模式二(Mode II)就很完美吗,不不不,还可以进行优化,所以有了Web Mvc框架

    • 常见的Web Mvc框架有Sturts及主角Spring Mvc

2.1.2 对比其他WEB框架有那些优势

  • 使用简单,对于开发人员来说实现一个功能肯定是实现越简单越好,Spring Mvc配合一系列注解即可完成Web应用的开发,尤其是在SpringBoot上的体现越明显
  • 性能上Spring会稍微比Struts快。Spring mvc是基于方法的设计,而Sturts是基于类,每次发一次请求都会实例一个action,每个action都会被注入属性,而Spring基于方法,粒度更细,但要小心把握像在Servlet控制数据一样。
  • 易于和Spring容器集成,毕竟是自己家里人

3.1 使用Spring Mvc

4.1 总结

  • 框架本身就是为了找到一个平衡,用哪个合适,就用哪个

5.1 参考