[全家桶之SpringMVC]SpringMVC 的特点和优势

你总得知道它好在哪,才能够用的心安理得!了解 SpringMVC 的设计目的、核心思想、主要特性和与传统 Servlet 和其他 MVC 框架的区别和优势。

概念

        SpringMVC 是 Spring 提供的一个实现了 Web MVC 设计模式的轻量级 Web 框架。它与 Struts2 框架一样,都属于 MVC 框架,但其使用和性能等方面比 Struts2 更加优异。很遗憾没有见证过Struts2辉煌的时代,现在除了很老的项目在维护,基本上已经不使用了。

作用

        SpringMVC 的设计目的是为了使 Spring 有可插入的 MVC 架构,从而在使用 Spring 进行 Web 开发时可以选择使用 Spring 的 SpringMVC 框架作为 Web 开发的控制器框架。所以,SpringMVC并不是spring的plus版,相反它只是spring框架的web部分,包含在spring内哦~

核心思想

        SpringMVC 的核心思想是基于请求驱动的模型-视图-控制器(Model-View-Controller, MVC)架构,它提供了一个前端控制器 DispatcherServlet,作为统一的请求入口,负责分派请求到不同的处理器(Handler),并通过视图解析器(ViewResolver)来渲染视图(View)。

主要特性

SpringMVC 的主要特性有以下几点:

  • 清晰的角色划分:控制器(Controller)、验证器(Validator)、命令对象(Command Object)、表单对象(Form Object)、模型对象(Model Object)、Servlet 分发器(DispatcherServlet)、处理器映射(Handler Mapping)、视图解析器(View Resolver)等等。每一个角色都可以由一个专门的对象来实现。
  • 强大而直接的配置方式:将框架类和应用程序类都能作为 JavaBean 配置,支持跨多个 context 的引用,例如,在 web 控制器中对业务对象和验证器(Validator)的引用。
  • 可适配、非侵入:可以根据不同的应用场景,选择合适的控制器子类(simple型、command型、form型、wizard型、multi-action型或者自定义),而不是一个单一控制器(比如 Action/ActionForm)继承。
  • 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,无需继承框架特定 API。
  • 与 Spring 其他框架无缝集成,是其它 Web 框架所不具备的。
  • 可定制性,HandlerMapping、ViewResolver 等能够非常简单地定制。
  • 功能强大的数据验证、格式化、绑定机制。
  • 利用 Spring 提供的 Mock 对象能够非常简单地进行 Web 层单元测试。
  • 本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。

看不懂别急,这章其实就是开篇(闲聊),为了引入之后的内容。

优势

与传统 Servlet 和其他 MVC 框架相比,SpringMVC 有以下几点区别和优势:

  • 相比于传统 Servlet,SpringMVC 提供了更高层次的抽象和封装,使开发人员无需关心底层细节,只需关注业务逻辑和视图展示。
  • 相比于 Struts2 框架,SpringMVC 运行效率更高,注解式开发更高效灵活,异常处理和 AOP 机制更完善。
  • 相比于 Play Framework 框架,SpringMVC 采用标准的 Java 开发,而 Play Framework 采用 Scala 语言开发而成。SpringMVC 提供更高的吞吐量和更好的性能。
  • 相比于 Ruby on Rails 框架,SpringMVC 提供更好的灵活性和可维护性,同时可以与其他的框架进行高效的集成,提高开发效率和用户体验。

学完SpringMVC打下坚实基础,再学习Spring会轻松很多~


                                                                                                                                我手写我口,我手写我心  ——  黄遵宪

你可能感兴趣的:(spring全家桶,Spring,MVC,java)