Spring Boot - tenji/ks GitHub Wiki
Spring Boot
Spring Boot 是一个开源 Java 框架,用于对基于 Spring 的独立生产级应用程序进行编程,其中包含一系列库,使项目启动和管理变得更加容易。Spring Boot 是 Spring Java 平台的约定优于配置(Convention over configuration)扩展,旨在帮助在创建基于 Spring 的应用程序时最大程度地减少配置问题。应用程序仍然可以根据特定需求进行调整,但初始 Spring Boot 项目提供了与 Spring 平台和选定的第三方库一起使用的最佳配置的预配置“意见视图”。
Spring Boot 可用于构建微服务、Web 应用程序和控制台应用程序。
一、Spring vs Spring MVC vs Spring Boot
- Spring 是一种框架,包含一系列的 IoC 容器的设计和依赖注入(DI)及整合 AOP 功能;
- Spring Boot 和 Spring MVC 都是一种框架,同时它们的核心都是 Spring;
- Spring Boot 包含了 Spring MVC,同时能简化配置。
有了 Spring MVC,为啥还需要 Spring Boot?
简单来说,简化配置 + 继承容器(Tomcat, Netty 等) + 加速开发。
二、Spring Boot 为 Spring 框架添加了什么?
2.1 Autoconfiguration
自动配置会使用预设的依赖项来初始化应用程序,因此你无需手动配置。Java Spring Boot 具有内置的自动配置功能,可以根据你的设置自动配置底层 Spring 框架和第三方包。这种基于最佳实践的方法有助于避免错误。
尽管你可以在初始化完成后覆盖这些默认值,但初始设置会加速开发。Java Spring Boot 的自动配置功能使你能够快速开始开发基于 Spring 的应用程序,并减少人为错误的可能性。
2.2 An opinionated approach to configuration
Spring Boot 根据项目的需求,使用固有的的方法来添加和配置启动器依赖项。Spring Boot 使用自己的判断来选择要安装的包以及要使用的默认值,而不是要求你自己做出所有这些决定并手动设置所有内容。
你可以在初始化过程中定义项目的需求,在此期间你可以在涵盖典型用例的多个启动器依赖项(称为 Spring Starters)中进行选择。你可以通过填写简单的 Web 表单来运行 Spring Boot Initializr,无需任何编码。
2.3 The ability to create stand-alone applications
Spring Boot 帮助开发人员创建直接运行的应用程序。具体来说,你可以创建独立运行的应用程序,无需依赖外部 Web 服务器。
你可以通过在初始化过程中将 Tomcat 或 Netty 等 Web 服务器嵌入到应用程序中来创建独立应用程序。因此,你可以通过按“运行”命令在任何平台上启动应用程序。(您可以选择退出此功能来构建没有嵌入式 Web 服务器的应用程序。)
三、特性
- 内嵌 Tomcat、Jetty 或 Undertow Web 应用服务器;
- 为构建工具提供固定的“入门”项目对象模型 (POM)。唯一支持的构建工具是 Maven 和 Gradle;
- Spring 应用程序的自动配置;
- 提供发布就绪(Production-Ready)的功能,如指标(metrics)、运行状况检查(health checks)、和外部化配置(externalized configuration);
- 不需要生成代码;
- 不需要 XML 配置;
- 除了 Java 之外,还可选支持 Kotlin 和 Apache Groovy。
∞、参考链接
- Spring Boot Wikipedia
- What is Java Spring Boot?