Spring Boot 是一种用来轻松建立具备最小或零配置的独立应用程序的方式。Spring Boot提供了一种新的编程范式,能在最小的阻力下开发Spring应用程序。有了它,你能够更加敏捷地开发Spring应用程序,专一于应用程序的功能,不用在Spring的配置上多花功夫,甚至彻底不用配置。java
在任何Spring应用程序中,你均可以找到Java配置或XML配置,它们为应用程序开启了特定的特性和功能,Spring Boot会为这些常见场景进行自动配置。web
在向应用程序加入spring boot时,有个名为spring-boot-autoconfigure的JAR文件,其中包含了不少配置类。每一个配置类都在应用程序的Classpath里,都有机会为应用程序的配置添砖加瓦。这些配置类里有用于Thymeleaf的配置,有用于Spring Data JPA的配置,有用于Spiring MVC的配置,还有不少其余东西的配置,你能够本身选择是否在Spring应用程序里使用它们。spring
全部这些配置如此不同凡响,缘由在于它们利用了Spring的条件化配置,这是Spring 4.0引入的新特性。条件化配置容许配置存在于应用程序中,但在知足某些特定条件以前都忽略这个配置。数据库
每当应用程序启动的时候,Spring Boot的自动配置都要作将近200个这样的决定,涵盖安全、集成、持久化、Web开发等诸多方面。全部这些自动配置就是为了尽可能不让你本身写配置。编程
在向项目中添加某些特定特性或功能时,须要手动向项目添加依赖,这时候你该考虑你须要哪些jar包,这些jar包的版本,这些jar包是否兼容等等问题,Spring Boot经过起步依赖为项目的依赖管理提供帮助。起步依赖其实就是特殊的Maven依赖和Gradle依赖,利用了传递依赖解析,把经常使用库聚合在一块儿,组成了几个为特定功能而定制的依赖。tomcat
大部分状况下,你都无需关心每一个Spring Boot起步依赖分别声明了些什么东西。Web起步依赖能让你构建Web应用程序,Thymeleaf起步依赖能让你用Thymeleaf模板,Spring Data JPA起步依赖能让你用Spring Data JPA将数据持久化到数据库里等等。安全
除了自动配置和起步依赖,Spring Boot还提供了一种颇有意思的新方法,能够快速开发Spring应用程序。服务器
Spring Boot CLI是Spring Boot的非必要组成部分。虽然它为Spring带来了惊人的力量,大大简化了开发,但也引入了一套不太常规的开发模型。spring-boot
Actuator则要提供在运行时检视应用程序内部状况的能力。安装了Actuator就能窥探应用程序的内部状况了,包括以下细节:测试
Spring应用程序上下文里配置的Bean
Spring Boot的自动配置作的决策
应用程序取到的环境变量、系统属性、配置属性和命令行参数
应用程序里线程的当前状态
应用程序最近处理过的HTTP请求的追踪状况
各类和内存用量、垃圾回收、Web请求以及数据源用量相关的指标
1)使用java和groovy开发基于spring的程序很是容易,它减小了大量的开发时间并提升了生产力,避免了编写大量的样板代码,注释和XML配置;
2)spring boot与spring生态系统集成很是容易,它遵循自动默认配置,提供了嵌入式http服务器,如tomcat,jetty等,方便开发和测试web程序;
3)提供了许多插件来开发和测试spring应用程序。
仅适用于全新的spring项目。