1.1 Spring Boot概述

在部署Spring应用程序的过程中,需要对XML和注解进行大量的配置。配置过程不仅烦琐复杂,而且容易出错。为了简化配置,Spring Boot应运而生。

1.1.1 什么是Spring Boot

Spring Boot是在Spring的基础上发展而来的全新的开源框架。它是由Pivotal团队开发的。开发Spring Boot的主要动机是简化部署Spring应用程序的配置过程。也就是说,使用Spring Boot能够以更简单的、更灵活的方式开发Spring应用程序。

1.1.2 Spring与Spring Boot

Spring本身是一个非常强大的企业级应用框架,它可以提高项目开发效率,降低可入侵性,将“高内聚、低耦合”的软件设计思路发挥到极致。但是,Spring框架也有很多缺点,具体如下:

 Spring框架需要依赖很多jar包,程序开发人员每次搭建Spring框架都要下载十多个jar包。由于Spring版本频繁地更新,导致不同版本的Spring对于依赖的jar包有着严格的版本要求。即使程序开发人员拥有早期版本的jar包,也会因为与Spring更新后的版本不兼容而导致项目无法运行。

 Spring有两大功能:依赖注入和切面编程。但是,实现这两大功能需要进行大量的配置工作,而且很多工作都是重复的。

 臃肿的依赖库也导致基于Spring框架开发的Web项目被部署之后,服务器需要花很长时间才能启动。

以上缺点不禁让广大Java程序开发人员叫苦连天。为了尽快从“痛苦”中挣脱出来,一个新的解决问题的思路产生了:为什么不能把Spring框架中那些机械性的、重复的、一成不变的工作交给计算机自己完成呢?于是Spring Boot应运而生。

Spring Boot通过极少的代码即可完成Web项目的整合、配置、部署和启动等工作。因此,Spring Boot受到了广大Java程序开发人员的青睐。现在市面上越来越多的企业级应用程序,使用的都是Spring Boot框架。因为Spring能做的事Spring Boot也能做,所以在Spring推出Spring Cloud云服务框架集合后,使得Spring Boot在微服务技术领域也占据了一席之地。

1.1.3 Spring Boot的特点

Spring Boot的主要特点如下:

 Spring Boot的代码非常少。Spring的注解驱动编程避免了大量的配置工作,并且Spring Boot可以自动创建各种工厂类,程序开发人员直接通过依赖注入就可以获取各类对象。

 Spring Boot的配置非常简单。程序开发人员只需在application.properties或application.yml文件中编写一些配置项就可以影响整个项目。即使不编写任何配置,项目也可以采用一套默认配置正常启动。Spring Boot支持使用@Configuration注解管理、维护配置类,让配置工作变得更灵活。

 Spring Boot可以自动部署。Spring Boot自带Tomcat服务器,在项目启动的过程中可以自动完成所有资源的部署操作。

 Spring Boot易于单元测试。Spring Boot自带JUnit单元测试框架,可以直接测试各个组件中的方法。

 Spring Boot集成了各种流行的第三方框架或软件。Spring Boot提供了许多集成其他技术的依赖包,程序开发人员可以直接通过这些依赖包调用第三方框架或软件,例如Redis、MyBatis、ActiveMQ等。

 Spring Boot项目启动的速度很快。即使项目有庞大的依赖库,仍能在几秒之内完成部署和启动。

1.1.4 Spring Boot开发需要哪些准备

当下Spring Boot支持3种编程语言,它们分别是Java、Kotlin和Groovy。本书使用的编程语言是Java。对于那些尚未掌握Java基础的读者,笔者推荐《Java从入门到精通(第7版)》。通过这本书,读者不仅能够学习适用于各个版本的JDK的Java基础,还能够学习由特定版本的JDK提供的新特性。在掌握了Java基础后,读者就可以尝试使用本书学习Spring Boot了。那么,在学习Spring Boot之前,需要做好哪些准备呢?具体如下:

 Java语言的软件开发工具包:JDK。

 构建工具:Maven。

 集成开发环境:Eclipse或者IDEA。

 测试工具:Postman(将结合第2章的Spring Boot程序予以介绍)。