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