有很多人建议我使用Spring Boot而不是Spring来开发REST Web服务。 我想知道两者之间究竟有什么区别?
答案 0 :(得分:15)
简而言之
您可以在此处阅读更多内容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的应用程序开发更容易,只需最少的入侵代码(更少的配置文件,更少的注释)。
答案 4 :(得分:0)
对于开发常见的Spring应用程序或开始学习Spring,我认为建议使用Spring Boot。它极大地简化了工作,准备好生产并迅速被广泛采用。
Spring Boot 被认为是固执己见的,即它极力主张某种快速发展的风格,但如果您愿意的话,它的设计足以适应规则的例外情况。简而言之,它是一种优于配置方法的惯例,它愿意理解您在必要时需要打破惯例
答案 5 :(得分:0)
这是显示差异的图形表示。
有关更多信息,请参考this link:
答案 6 :(得分:0)
对于 Spring Framework ,您需要使用XML
configuration或Java
configuration配置项目。
但是对于 Spring Boot ,它们是根据 Spring 团队的观点进行预配置的,以便快速开发。这就是为什么说 Spring Boot 被称为 Spring Framework 的“观点视图” 。它遵循 Convention over Configuration 设计范例。
注意:这些配置包括用于MVC的视图解析器,事务管理器,定位容器管理的bean(Spring bean)的方式等等。当然,您可以根据需要覆盖所有这些预配置。
Spring Boot 支持嵌入式servlet容器,例如 Tomcat , Jetty 或 Undertow ,以创建独立的应用程序,而 Spring Framework 则没有。