川哥教你Spring Boot 2实战
上QQ阅读APP看书,第一时间看更新

1.4 Spring Boot介绍

既然Spring已经很优秀了,那为什么又产生了Spring Boot呢?Spring经过多年的完善和发展,其已变得越来越重,而目前互联网应用逐渐向轻量化、快速化和敏捷化发展,显然在某些应用方面,Spring显得不合时宜。此时,由Spring原创团队在Spring基础上开发了更加轻量级框架,即Spring Boot。目前,最新版本已到2.2.x。故本书介绍Spring Boot 2即指2.x版本系列,Spring Boot 2更新很快,基本1~2月便有一个小版本发布。

比如,Spring中配置文件和Java代码开发是两种不同语言,配置和开发分开,目前更倾向于将其混合,而不是开发人员要同时掌握多种开发语言。Spring Boot基于Spring 4.0以上版本设计,不仅继承了Spring框架原有的优秀特性,还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。同时,Spring Boot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题也得到了很好的解决。

以下是Spring Boot的一些特点:

· 快速创建独立的Spring应用;

· 可嵌入Tomcat、Jetty、Undertow等,而且不需要单独进行部署;

· 提供的starters poms简化Maven配置;

· 尽可能自动配置Spring应用;

· 提供生产指标、健壮检查和外部化配置;

· 没有代码生成和XML配置要求。

Spring Boot框架中有两个非常重要的策略,即开箱即用和约定优于配置。

开箱即用:指在开发过程中,通过在Maven项目的pom文件中添加相关依赖包,然后使用对应注解来代替烦琐的XML配置文件以管理对象的生命周期。这个特点使得开发人员摆脱了复杂的配置工作以及依赖的管理工作,使其更加专注于业务逻辑。

约定优于配置:是一种由Spring Boot本身来配置目标结构,由开发人员在结构中添加信息的软件设计范式。这一特点虽增加了BUG定位的复杂性,但降低了部分灵活性,减少了开发人员需要做出决定的数量,减少了大量的XML配置,并且可以将代码编译、测试和打包等工作自动化。

Spring Boot具有如下优点:

· 支持快速开发出RESTful风格的微服务架构;

· 自动化、适合做微服务,单一Jar包部署和管理非常方便。只要系统架构设计合理,大型项目也能用,加上用Nginx负载均衡,能轻松实现横向扩展。

由此,Spring Boot具有Spring所具有的优点和基本特性,更增加了其自己独特的特性。其要解决的问题,一方面是精简配置,另一方面是如何更加方便地让Spring产生的生态圈和其他工具有效整合(比如Redis、Email、ElasticSsearch)。