Spring Boot框架是基于Spring框架开发的全新框架,它本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速和敏捷的开发新一代基于Spring框架的应用,其设计目的是简化Spring应用的初始化搭建和开发过程,使创建独立的基于Spring的生产级应用程序变得很容易,可以“直接运行(Just Run)”应用程序。

Spring Boot框架整合了许多框架和第三方库配置,几乎可以达到“开箱即用(out of the box)”。Spring Boot框架在开发工程中大量使用“约定优先配置(convention over configuration)”的思想来摆脱Spring框架中各种复杂的手动配置,同时衍生出了Java Config(Java配置类)这种优秀的配置方式,以取代传统XML配置文件的。

官网地址:https://spring.io/projects/spring-boot


1、Spring Boot的优点

  • 可快速构建独立的Spring应用
    SpringBoot是一个依靠大量注解实现自动化配置的全新框架。在构建Spring应用时,我们只需要添加相应的场景依赖,Spring Boot就会根据添加的场景依赖自动进行配置,在无须额外手动添加配置的情况下快速构建出一个独立的Spring应用。
  • 直接嵌入Tomcat、Jetty和Undertow服务器(无须部署WAR文件)
    传统的Spring应用部署时,通常会将应用打成War包形式并部署到TomcatJettyUndertow服务器中。Spring Boot框架内嵌了TomcatJettyUndertow服务器,而且可以自动将项目打包,并在项目运行时部署到服务器中。
  • 通过依赖启动器简化构建配置
    在Spring Boot项目构建过程中,无须准备各种独立的JAR文件,只需在构建项目时根据开发场景需求选择对应的依赖启动器“starter", 在引入的依赖启动器"starter" 内部已经包含了对应开发场景所需的依赖,并会自动下载和拉取相关Jar包。例如,在Web开发时,只需在构建项目时选择对应的Web场景依赖启动器spring-boot-starter-web,Spring Boot项目便会自动导入spring-webmvcspring-webspring-boot-starter-tomcat等子依赖,并自动下载和获取Web开发需要的相关JAR包。
  • 自动化配置Spring和第三方库
    Spring Boot充分考虑到与传统Spring框架以及其他第三方库融合的场景,在提供了各种场景依赖启动器的基础上,内部还默认提供了各种自动化配置类(比如RedisAutoConfiguration)。使用Spring Boot开发项目时,一旦引入了某个场景的依赖启动器,Spring Boot内部提供的默认自动化配置类就会生效,开发者无须手动在配置文件中进行相关配置(除非开发者需要更改默认配置),从而极大减少了开发人员的工作量,提高了程序的开发效率。
  • 提供生产就绪功能
    Spring Boot提供了一些用于生产环境运行时的特性,例如指标、监控检查和外部化配置。其中,指标和监控检查可以帮助运维人员在运维期间监控项目运行情况;外部化配置可以使运维人员快速、方便地进行外部化配置和部署工作。
  • 极少的代码生成和XML配置
    Spring Boot框架内部已经实现了与Spring以及其他常用第三方库的整合连接,并提供了默认最优化的整合配置,使用时基本上不需要额外生成配置代码和XML配置文件。在需要自定义配置的情况下,Spring Boot更加提倡使用Java Config(Java配置类)替换传统的XML配置方式,这样更加方便查看和管理。