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

客服QQ:3315713922

软件设计:SpringBoot与SpringMVC的区别是什么?

作者:Amber-     来源: https://www.cnblogs.com/almm/p/11254147.html点击数:1351发布时间: 2020-04-29 15:41:57

标签: 软件设计SpringMVC软件工程

  SpringMVC属于SpringFrameWork的后续产品,已经融合在SpringWebFlow里面。spring框架提供了构建web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还可以是Struts这样的Web框架。

  SpringBoot与SpringMVC的区别是什么?

  Spring框架就像一个家族,有众多衍生产品例如boot、security、jpa等等。但他们的基础都是Spring的ioc和aopioc提供了依赖注入的容器aop,解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。

  SpringMVC是基于Servlet的一个MVC框架主要解决Web开发的问题,因为Spring的配置非常复杂,各种XML、JavaConfig、hin处理起来比较繁琐。于是为了简化开发者的使用,从而创造性地推出了Springboot,约定优于配置,简化了spring的配置流程。

  说得更简便一些:Spring最初利用“工厂模式”(DI)和“代理模式”(AOP)解耦应用组件。大家觉得挺好用,于是按照这种模式搞了一个MVC框架(一些用Spring解耦的组件),用开发web应用(SpringMVC)。然后有发现每次开发都写很多样板代码,为了简化工作流程,于是开发出了一些“懒人整合包”(starter),这套就是SpringBoot。

  SpringMVC的功能

  SpringMVC提供了一种轻度耦合的方式来开发web应用。

  SpringMVC是Spring的一个模块,式一个web框架。通过DispatcherServlet,ModelAndView和ViewResolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。

  SpringBoot的功能

  SpringBoot实现了自动配置,降低了项目搭建的复杂度。

  众所周知Spring框架需要进行大量的配置,SpringBoot引入自动配置的概念,让项目设置变得很容易。SpringBoot本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用程序。

  也就是说,它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson,JDBC,Mongo,Redis,Mail等等),SpringBoot应用中这些第三方库几乎可以零配置的开箱即用(out-of-the-box),大部分的SpringBoot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。

  SpringBoot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用SpringMVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是SpringMVC做的而不是SpringBoot。

  对使用者来说,换用SpringBoot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。

  所以,用最简练的语言概括就是:

  1.Spring是一个“引擎”;

  2.SpringMVC是基于Spring的一个MVC框架;

  3.SpringBoot是基于Spring4的条件注册的一套快速开发整合包。

  Spring框架提供了构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的SpringWeb框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServerPages(JSP)技术、Velocity、Tiles、iText和POI。SpringMVC框架并不知道使用的视图,所以不会强迫您只使用JSP技术。SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

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