Spring Boot的优势[关闭]

Posted

技术标签:

【中文标题】Spring Boot的优势[关闭]【英文标题】:Advantage of Spring Boot [closed] 【发布时间】:2015-05-04 02:02:31 【问题描述】:

我一直在尝试了解 Spring Boot,并可能将我的项目迁移到它。但是,除了嵌入式 Tomcat,我没有得到它的真正优势。您能否向我解释一下 Spring Boot 与常规 Spring 相比的真正强大之处是什么?

【问题讨论】:

很多人对这个问题感兴趣,并且很多人决定关闭这个问题,因为它是基于意见的。说了很多关于***的内容 鉴于问题已结束,我想在 2 年后加上我的 2 美分,因为我一直在观察一些支持。目前,spring boot 的主要优势在于它如何适应基于容器的部署,这基本上是为每个新的基础设施完成的。如果没有 spring-boot,很难在基于 docker 的容器中使用 spring。 【参考方案1】:

引用Spring Boot Page,具有以下特点:

    创建独立的 Spring 应用程序 直接嵌入 Tomcat、Jetty 或 Undertow(无需部署 WAR 文件) 提供自以为是的“入门”POM 以简化您的 Maven 配置 尽可能自动配置 Spring 提供生产就绪功能,例如指标、运行状况检查和外部化配置 绝对无需代码生成无需 XML 配置

【讨论】:

“不需要 XML 配置”部分真的是 spring-boot 特有的吗?不使用spring-boot就可以通过java配置类来配置所有东西吗? @kgautron 不,可以使用基于 Java 的配置而不使用 spring-boot。 弹簧靴/弹簧是双刃剑。主要取决于从事该项目的开发人员的类型。因为 Spring 功能丰富;它很快就会在草率的开发人员面前失控。您需要更严格地控​​制应将哪些功能用于什么目的,否则您最终将获得大量应用。总体而言,Spring 不再是轻量级的,每个版本都会添加大量功能,如果这些功能只是为了使用而被拖入,应用程序将不再可维护,很难快速进行更改【参考方案2】:

最大的优势是开箱即用的配置基于它找到的内容和嵌入的服务器(你可以让一个 jar 运行它并转到localhost:8080 以查看结果)除了它还有metricshealth checksexternalised configuration

在我看来是构建云微服务的完美工具

【讨论】:

【参考方案3】:

使用配置/jar 依赖项中包含的默认值进行引导,是 Spring 引导的真正优势!快速完成任务!

它只是 Spring 框架的另一个项目,看起来很简单,对安全、数据、社交等应用程序所需的所有功能都有强大的支持。

如果你喜欢注解而不是像我这样的 XML 配置,你可以使用 @Configuration 进行配置, @ComponentScan 用于依赖注入, 和 @EnableAutoConfiguration 告诉 spring 猜测默认值 并一起工作。 @SpringBootApplication 注解等价于使用 @Configuration, @EnableAutoConfiguration, 和@ComponentScan 与他们的默认属性。 所以事情进一步简化了,一个注释完成了 3 的工作。

【讨论】:

【参考方案4】:

通过大量有用的默认值,从无到有非常容易。

如果您想迁移一些现有的项目,这很可能会产生很多难以迁移的怪癖,这并不容易。

【讨论】:

【参考方案5】:

SpringBoot的优势:

无需创建样板配置 大量 SpringBoot Starter 快速启动和运行 在代码/配置更新时自动重启服务器的 DevTools 嵌入式 Tomcat/Jetty/Undertow 支持 更轻松地自定义应用程序属性 轻松管理配置文件特定属性 使用 platform-b​​om 更轻松地进行依赖管理

以下是我的几篇关于 SpringBoot 的优点以及 SpringBoot 工作原理的文章。

Why SpringBoot?

How SpringBoot AutoConfiguration magic works?

【讨论】:

【参考方案6】:

最重要的是 Spring Boot 与微服务的概念保持一致,可以从任何地方的容器运行,例如云。这可能是因为 springboot 的以下性质

占地面积小 独立服务 更容易从容器中启动,每个服务都可以在自己的容器中(如 docker) 完全可以通过脚本轻松配置和部署。适合在云中自动扩展和部署。

【讨论】:

【参考方案7】:

在主动开发中,spring boot 的优点是不用复杂的xml文件配置。

1.Embedded tomcat丢弃web.xml配置;

2.spring-boot security 丢弃applicationcontext-security.xml配置;

3.spring-boot webservice丢弃applicationcontext-ws.xml配置;

4.spring-boot mvc丢弃applicationcontext.xml配置;

5.spring-boot datasource(Relational Database and nosql Database)丢弃applicationcontext.xml配置,即使有多个datasource。

丢弃这个配置文件,方便我们的开发,提高效率。

【讨论】:

以上是关于Spring Boot的优势[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

spring-boot 2 优雅关闭网络

spring-boot-starter-parent 2.0.1.RELEASE下Spring Boot App立即关闭

如何在 Spring Boot 中在 Spring Security 级别启用 CORS [关闭]

spring-boot hibernate 关闭验证

Spring Boot Webflux/Netty - 检测关闭的连接

Spring boot web context (AnnotationConfigEmbeddedWebApplicationContext) - 突然被关闭/关闭