Spring MVC和Spring Boot的区别

我刚刚开始学习spring。 下一步,我想开发更大的Web应用程序。 现在我想知道是否应该从Spring Boot或Spring MVC开始。 我已经阅读了一些东西,但它有点混乱,因为两者看起来有点相似。 那么这两者之间有什么区别呢?

  • Spring MVC是一个完整的面向HTTP的MVC框架,由Spring框架pipe理,基于Servlets。 这将等于JavaEE堆栈中的JSF。 其中最stream行的元素是用@Controller注解的类,在这里你实现了可以使用不同的HTTP请求访问的方法。 它有一个相当于@RestController来实现基于REST的API。
  • Spring引导是用于快速设置应用程序的实用程序,提供开箱即用的configuration,以构buildSpring应用程序。 正如你所知,Spring在伞中集成了各种不同的模块,如Spring-CoreSpring-DataSpring-web (其中包括Spring MVC)等等。 有了这个工具,你可以告诉Spring他们有多less人可以使用,你将得到一个快速的设置(你可以稍后自行更改)。

所以,Spring MVC是一个用于Web应用程序的框架,Spring引导是一个基于Spring的生产就绪项目初始化器。 您可能会发现访问Spring MVC标记wiki以及SO中的Spring Boot标记wiki 。

Spring MVCSpring Boot在其他答案中都有很好的描述,所以我不需要再重复,直接跳到具体的细节。 Spring BootSpring MVC不具有可比性或相互排斥性。 如果你想用Spring来开发Web应用程序,那么你仍然可以使用Spring MVC 。 你的问题就成为是否使用Spring Boot了

为了开发常见的Spring应用程序或开始学习Spring,我认为使用Spring Boot是值得推荐的。 这大大简化了工作,生产已经准备就绪,正在迅速被广泛采用。

我曾经看到有时初学者问这个问题,因为在STS中有两个向导:一个用于创buildSpring Boot项目,另一个用于创buildSpring MVC项目。 所以,我的build议是创build一个Spring Boot项目,并selectWeb作为一个模块。

Spring MVC是Spring Framework的一个子项目,目标是使用MVC(模型 – 视图 – 控制器)模式的应用程序的devise和开发。 Spring MVC被devise为与Spring框架和其他大多数子项目完全完全整合。

Spring Boot工程团队从这篇文章中可以很好地理解Spring Boot 。 它被认为是自以为是的,也就是说它主张一定的快速发展风格,但是如果你愿意的话,它的devise足够适应规则的例外。 简而言之,这是一个在configuration方法上的约定,它愿意理解你需要在必要时打破惯例。

SpringBoot实际上是预configuration的,减less锅炉configuration,并提供最简单或快速的方式来启动您的应用程序。

SpringBoot将开发人员的configuration头痛带到了自己而不是Spring。

隐含的SpringBoot是基于Spring框架的概念,如bean,控制器,服务,jpa等

你可以说SpringBoot是Spring的包装器。

在SpringBoot默认端口的服务器是8080,但如果你想改变,然后去你的application.properties和写

server.port = 8084

Spring MVC和Spring Boot是为了不同的目的而存在的。 所以,把对方作为竞争者是不明智的。

什么是Spring Boot?

Spring Boot是一个用合理的默认值封装Spring应用程序的框架。 这是什么意思?。 你正在开发一个使用Spring MVC,Spring Data,Hibernate和Tomcat的Web应用程序。 如何打包和部署这个应用程序到您的Web服务器。 截至目前,我们必须手动编写configuration,XML文件等部署到Web服务器。

Spring Boot在您的项目中为您提供零XMLconfiguration。 相信我,你不需要部署描述符,Web服务器等等。Spring Boot是一个神奇的框架,为你打包所有的依赖。 最后,您的Web应用程序将成为一个独立的JAR文件,并带有embedded式服务器。

如果您仍然困惑这是如何工作的,请阅读使用spring启动的微服务框架开发。

什么是Spring MVC?

这是一个传统的Web应用程序框架,可以帮助您构buildWeb应用程序。 它类似于Struts框架。

我希望这可以帮助你了解差异