Spring 和 Spring 引导之间的区别
Difference between Spring and Spring Boot
有很多人建议我使用 Spring Boot 而不是 Spring 来开发 REST web 服务。
我想知道两者到底有什么区别?
基本上,Spring Boot 是 Spring 应用程序的自以为是的实例。
Spring Boot是一个快速的应用程序开发平台。它使用 Spring 的各种组件,但具有其他优点,例如能够将您的应用程序打包为可运行的 jar,其中包括嵌入式 tomcat(或码头)服务器。此外,Spring Boot 包含很多自动配置(自以为是的部分),它会根据 classes/beans 可用或缺失的内容来选择要创建的内容。
我会回应他们的观点,如果您要使用 Spring,我想不出没有任何理由在没有 Spring Boot 的情况下使用它。
简而言之
- Spring 引导减少了编写大量配置和样板代码的需要。
- 它对 Spring 平台和第三方库有自己的看法,因此您可以轻松上手。
- 易于创建带有嵌入式的独立应用程序Tomcat/Jetty/Undertow。
- 提供指标、健康检查和外部化配置。
您可以在此处阅读更多内容http://projects.spring.io/spring-boot/
不幸的是,我的意思是出于对 Spring 引导的个人不满,我还没有看到任何真正的量化列表,其中明确列出了差异。
就只有“……自以为是……”这样的垃圾句被炒作的资格了。
清楚的是,SpringBoot 已将 Spring 注释组隐式地包装到它自己的注释集中。
进一步混淆,并使得任何人都需要从 SpringBoot 开始,必须记住特定的 SpringBoot 注释代表什么。
因此,我的回复对原始问题没有可量化的好处,这类似于 SpringBoot 作者的问题。
Spring IMO 背后的那些人故意开始混淆,这反映了他们的 JavaDoc 和 API 的迟钝(参见 SpringBatch API 作为示例,如果你以为我在发火)这让人怀疑他们开源精神的价值。
我对弄清楚Spring引导的探索仍在继续。
Spring 引导是 Spring 框架的自以为是的观点 projects.Let 通过从 Spring 引导文档中获取的一个程序对其进行分析。
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
这是一个非常基本的 REST API,您需要在您的 POM.xml
中添加 Spring-boot-starter-web
同样。由于您已经添加了 starter-web 依赖项,因此注释
@EnableAutoConfiguration
猜测您要开发一个 web 应用程序并据此设置 Spring。
Spring 引导自动配置尝试根据您添加的 jar 依赖项自动配置您的 Spring 应用程序。例如,如果 HSQLDB
在您的 classpath
上,并且您没有手动配置任何数据库连接 bean,那么 Spring 引导会自动配置一个内存数据库。
它像专家一样固执己见。 Maven 为您创建一个项目结构,它认为这是项目的一般模式,例如它为您添加 src/main/java
文件夹或资源文件夹。
Spring 启动有助于加快开发速度。它有许多入门项目,可以帮助您更快地开始。它还包括许多非功能性特性,如:嵌入式服务器、安全性、指标、健康检查等。简而言之,它使基于 spring 的应用程序开发更容易,并且具有最少的侵入代码(更少的配置文件,更少的注释)。
对于开发常见的Spring应用程序或开始学习Spring,我认为建议使用Spring Boot。它大大简化了工作,已做好生产准备并迅速被广泛采用。
Spring Boot 被认为是固执己见的,即它大力提倡某种快速开发风格,但它的设计足以容纳规则的例外情况,如果你会。简而言之,它是一种优于配置方法的约定,愿意理解您在必要时打破约定的需要
对于 Spring Framework,您需要使用 XML
configuration or Java
configuration 配置您的项目。
但对于 Spring Boot,这些是根据 Spring 团队的快速开发视图预先配置的。这就是为什么 Spring Boot 被称为 "opinionated view" 的 Spring框架。它遵循 Convention over Configuration 设计范式。
注意:这些配置包括 MVC 的视图解析器、事务管理器、定位容器管理 bean(Spring bean)的方法等等。当然,您可以根据需要覆盖任何这些预配置。
Spring Boot 支持嵌入式 servlet 容器,如 Tomcat、Jetty 或 Undertow 创建独立的应用程序,而 Spring Framework 没有。
- Spring 消除样板代码。
- Spring-引导消除样板配置。
more
有很多人建议我使用 Spring Boot 而不是 Spring 来开发 REST web 服务。 我想知道两者到底有什么区别?
基本上,Spring Boot 是 Spring 应用程序的自以为是的实例。
Spring Boot是一个快速的应用程序开发平台。它使用 Spring 的各种组件,但具有其他优点,例如能够将您的应用程序打包为可运行的 jar,其中包括嵌入式 tomcat(或码头)服务器。此外,Spring Boot 包含很多自动配置(自以为是的部分),它会根据 classes/beans 可用或缺失的内容来选择要创建的内容。
我会回应他们的观点,如果您要使用 Spring,我想不出没有任何理由在没有 Spring Boot 的情况下使用它。
简而言之
- Spring 引导减少了编写大量配置和样板代码的需要。
- 它对 Spring 平台和第三方库有自己的看法,因此您可以轻松上手。
- 易于创建带有嵌入式的独立应用程序Tomcat/Jetty/Undertow。
- 提供指标、健康检查和外部化配置。
您可以在此处阅读更多内容http://projects.spring.io/spring-boot/
不幸的是,我的意思是出于对 Spring 引导的个人不满,我还没有看到任何真正的量化列表,其中明确列出了差异。 就只有“……自以为是……”这样的垃圾句被炒作的资格了。
清楚的是,SpringBoot 已将 Spring 注释组隐式地包装到它自己的注释集中。 进一步混淆,并使得任何人都需要从 SpringBoot 开始,必须记住特定的 SpringBoot 注释代表什么。
因此,我的回复对原始问题没有可量化的好处,这类似于 SpringBoot 作者的问题。 Spring IMO 背后的那些人故意开始混淆,这反映了他们的 JavaDoc 和 API 的迟钝(参见 SpringBatch API 作为示例,如果你以为我在发火)这让人怀疑他们开源精神的价值。
我对弄清楚Spring引导的探索仍在继续。
Spring 引导是 Spring 框架的自以为是的观点 projects.Let 通过从 Spring 引导文档中获取的一个程序对其进行分析。
@RestController
@EnableAutoConfiguration
public class Example {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
这是一个非常基本的 REST API,您需要在您的 POM.xml
中添加 Spring-boot-starter-web
同样。由于您已经添加了 starter-web 依赖项,因此注释
@EnableAutoConfiguration
猜测您要开发一个 web 应用程序并据此设置 Spring。
Spring 引导自动配置尝试根据您添加的 jar 依赖项自动配置您的 Spring 应用程序。例如,如果 HSQLDB
在您的 classpath
上,并且您没有手动配置任何数据库连接 bean,那么 Spring 引导会自动配置一个内存数据库。
它像专家一样固执己见。 Maven 为您创建一个项目结构,它认为这是项目的一般模式,例如它为您添加 src/main/java
文件夹或资源文件夹。
Spring 启动有助于加快开发速度。它有许多入门项目,可以帮助您更快地开始。它还包括许多非功能性特性,如:嵌入式服务器、安全性、指标、健康检查等。简而言之,它使基于 spring 的应用程序开发更容易,并且具有最少的侵入代码(更少的配置文件,更少的注释)。
对于开发常见的Spring应用程序或开始学习Spring,我认为建议使用Spring Boot。它大大简化了工作,已做好生产准备并迅速被广泛采用。
Spring Boot 被认为是固执己见的,即它大力提倡某种快速开发风格,但它的设计足以容纳规则的例外情况,如果你会。简而言之,它是一种优于配置方法的约定,愿意理解您在必要时打破约定的需要
对于 Spring Framework,您需要使用
XML
configuration orJava
configuration 配置您的项目。但对于 Spring Boot,这些是根据 Spring 团队的快速开发视图预先配置的。这就是为什么 Spring Boot 被称为 "opinionated view" 的 Spring框架。它遵循 Convention over Configuration 设计范式。
注意:这些配置包括 MVC 的视图解析器、事务管理器、定位容器管理 bean(Spring bean)的方法等等。当然,您可以根据需要覆盖任何这些预配置。
Spring Boot 支持嵌入式 servlet 容器,如 Tomcat、Jetty 或 Undertow 创建独立的应用程序,而 Spring Framework 没有。
- Spring 消除样板代码。
- Spring-引导消除样板配置。
more