Spring和Spring Boot之间的区别

时间:2015-05-06 15:15:49

标签: spring api rest spring-boot

有很多人建议我使用Spring Boot而不是Spring来开发REST Web服务。 我想知道两者之间究竟有什么区别?

7 个答案:

答案 0 :(得分:15)

简而言之

  1. Spring Boot减少了编写大量配置和样板代码的需要。
  2. 它对Spring Platform和第三方库有一个自以为是的看法,因此您可以尽量少开始。
  3. 使用嵌入式Tomcat / Jetty / Undertow轻松创建独立应用程序。
  4. 提供指标,运行状况检查和外部化配置。
  5. 您可以在此处阅读更多内容http://projects.spring.io/spring-boot/

答案 1 :(得分:8)

基本上,Spring Boot是一个自称为Spring应用程序的实例。

Spring Boot是一个快速的应用程序开发平台。它使用Spring的各种组件,但还有其他细节,例如将应用程序打包为可运行jar的能力,其中包括嵌入式tomcat(或jetty)服务器。另外,Spring Boot包含很多自动配置(自觉部分),它会根据可用或缺少的类/ bean来选择创建内容。

我会回应他们的观点,如果你打算使用Spring,我想不出没有Spring Boot的任何理由。

答案 2 :(得分:4)

不幸的是,我的意思是出于对Spring启动的个人挫败感,我还没有看到任何真正的量化列表,其中明确地概述了差异。 只有诸如垃圾句“......自以为是的观点......”这样的资格才被包含在内。

明确的是,SpringBoot隐含地将Spring注释组包装到它自己的注释集中。 进一步混淆,并且需要任何从SpringBoot开始的人必须提交内存特定SpringBoot注释所代表的内容。

因此,我的答复对原始问题没有任何可量化的好处,这与SpringBoot作者的问题类似。 那些支持Spring IMO的人故意开始混淆,这反映了他们的JavaDoc和API的迟钝(参见SpringBatch API作为一个例子,如果你认为我正在燃烧),这让人怀疑他们的开源精神的价值。

我对寻找SpringBoot的追求仍在继续。

答案 3 :(得分:1)

Spring Boot是Spring Framework项目的观点。请通过Spring Boot Documentation中的一个程序对其进行分析。

Map<String, Object> map = new HashMap<String, Object>();
map.put("dateKey", "20170105");
map.put("eventTitle", "New Booking");
map.put("monthKey", "01");
map.put("yearKey", "2017");
FirebaseDatabase.getInstance().getReference().child("AAAAB").child("2017").child("01").child("20170105").setValue(map);

这是一个非常基本的REST API,您需要在@RestController @EnableAutoConfiguration public class Example { @RequestMapping("/") String home() { return "Hello World!"; } public static void main(String[] args) throws Exception { SpringApplication.run(Example.class, args); } } 中为Spring-boot-starter-web添加POM.xml。由于您添加了starter-web依赖项,因此注释 @EnableAutoConfiguration猜测您要开发Web应用程序并相应地设置Spring。

Spring Boot自动配置尝试根据您添加的jar依赖项自动配置Spring应用程序。例如,如果HSQLDB上有classpath,并且您尚未手动配置任何数据库连接bean,则Spring Boot会自动配置内存数据库。

它像maven一样自以为是。 Maven为您创建了一个项目结构,它认为这是项目的一般模式,例如为您添加src/main/java文件夹或资源文件夹。

Spring boot有助于加快开发速度。它有许多启动项目,可以帮助您加快进度。它还包括许多非功能性功能,例如:嵌入式服务器,安全性,指标,运行状况检查等。简而言之,它使基于Spring的应用程序开发更容易,只需最少的入侵代码(更少的配置文件,更少的注释)。

参考:https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#boot-documentation-about

答案 4 :(得分:0)

对于开发常见的Spring应用程序或开始学习Spring,我认为建议使用Spring Boot。它极大地简化了工作,准备好生产并迅速被广泛采用。

Spring Boot 被认为是固执己见的,即它极力主张某种快速发展的风格,但如果您愿意的话,它的设计足以适应规则的例外情况。简而言之,它是一种优于配置方法的惯例,它愿意理解您在必要时需要打破惯例

答案 5 :(得分:0)

这是显示差异的图形表示。
有关更多信息,请参考this linkenter image description here

Src of this Image

答案 6 :(得分:0)

  • 对于 Spring Framework ,您需要使用XML configurationJava configuration配置项目。

    但是对于 Spring Boot ,它们是根据 Spring 团队的观点进行预配置的,以便快速开发。这就是为什么说 Spring Boot 被称为 Spring Framework “观点视图” 。它遵循 Convention over Configuration 设计范例。

    注意:这些配置包括用于MVC的视图解析器,事务管理器,定位容器管理的bean(Spring bean)的方式等等。当然,您可以根据需要覆盖所有这些预配置。

  • Spring Boot 支持嵌入式servlet容器,例如 Tomcat Jetty Undertow ,以创建独立的应用程序,而 Spring Framework 则没有。