1. Spring Boot的前世今生
Spring Boot是伴随着Spring 4.0诞生的;从字面理解,Boot是引导的意思,因此Spring Boot帮助开发者快速搭建Spring框架;Spring Boot帮助开发者快速启动一个Web容器;Spring Boot继承了原有Spring框架的优秀基因;Spring Boot使得基于Spring的开发过程更加简易。
Spring Boot简单讲就是牺牲项目的自由度来减少配置的复杂度(约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,也称“契约式编程”思想),约定大于配置的主导思想是Spring Boot自动配置方案的指导思想。约定规则自动配置集成好其它框架,从而达到“开箱即用”。同时,也支持自由配置。
Spring Boot让创建独立的,生产环境的基于Spring的应用更加快捷简易。 大部分Spring Boot Application只要一些极简的配置,即可“一键运行”。
2. Spring Boot的发展
Spring Boot自2014年发布第一个RELEASE版本;截至目前Spring Boot共计发布53个版本,最新版本为Spring Boot v2.4.2;
Spring Boot中1.x和2.x中从设计模式和编程模型上发生了较大变化;Spring Boot大版本对应的小版本下发生的升级对整个API等规则上发生不是特别明显。相对而言,Spring Boot 2.x对自动化配置进行了更加的完善。
Spring Boot 版本历史参考:https://github.com/spring-projects/spring-boot/releases
3. Spring Boot定位
我们企业级软件的目标是提供稳定健壮的服务,以实现其商业价值。为了满足这些需求,服务开发者需要能够快速构建和迭代新的应用,同时应用的架构是可扩展的,便携式的,富弹性的,可以进行频繁的更新。Spring Boot正式为此而诞生。
由于 Spring Boot 设计优雅,使用简单,节省开发成本。另外由于微服务的火爆,作为 Spring Cloud 实现基础的 Spring Boot ,成为Java中构建微服务应用的基础必备技能。
4. Spring Boot特性
Spring Boot的特性如下:
-
内嵌Web Server。Tomcat,Jetty,Undertow等servlet 容器。可直接通过Jar包的形式部署运行。
Spring 5.x增加基于响应式的Spring Web Flux模块,Spring Boot 2.x对标Spring 5.x,在Spring Web Fulx中引入了Netty作为服务端。
-
自动装配。 Spring Boot通过
Spring Auto Configuration
实现Spring Boot的自动装配/自动配置。 -
提供生产环境的特性。比如特征指标、健康检查和外部化配置;提高自动化运维的效率。
-
提供定制化的starter poms来简化maven配置(gradle相同)
Spring由于其繁琐的配置,一度被人认为“配置地狱”,各种XML、Annotation配置,让人眼花缭乱,而且如果出错了也很难找出原因。而Spring Boot更多的是采用Java Config的方式,对Spring进行配置。
5. Spring Boot学习的条件
Spring Boot 非常好用,但并不是零基础可直接上手。在学习Spring Boot时最好已具备 Spring 及 Spring MVC 框架的知识。Spring Boot 是一个快速开发框架,其技术基础几乎全部来源自 Spring,且Spring Boot使用简单,开箱即用,但底层实现错综复杂 。学习Spring Boot框架的前置条件:
- Spring + Spring MVC知识
- Java 8 和核心特性
- 大脑