21.5 小结

Spring Boot 是 Spring 家族中一个令人兴奋的新项目。Spring 致力于简化 Java 开发,而 Spring Boot 致力于让 Spring 本身更加简单。

Spring Boot 用了两个技巧来消除 Spring 项目中的样板式配置:Spring Boot Starter 和自动配置。

一个简单的 Spring Boot Starter 依赖能够替换掉 Maven 或 Gradle 构建中多个通用的依赖。例如,在项目中添加 Spring Boot Web 依赖后,将会引入 Spring Web 和 Spring MVC 模块,以及 Jackson 2 数据绑定模块。

自动配置充分利用了 Spring 4.0 的条件化配置特性,能够自动配置特定的 Spring bean,用来启用某项特性。例如,Spring Boot 能够在应用的类路径中探测到 Thymeleaf,然后自动将 Thymeleaf 模板配置为 Spring MVC 视图的 bean。

Spring Boot 的命令行接口(command-line interface,CLI)使用 Groovy 进一步简化了 Spring 项目。通过在 Groovy 代码中简单地引用 Spring 组件,CLI 就能自动添加所需的 Starter 依赖(而这又会触发自动配置)。除此之外,通过 Spring Boot CLI 运行时,很多的 Spring 类型都不需要在 Groovy 代码中显式使用 import 语句导入。

最后,Spring Boot Actuator 为基于 Spring Boot 开发的 Web 应用提供了一些通用的管理特性,包括查看线程 dump、Web 请求历史以及 Spring 应用上下文中的 bean。

在读完本章之后,你可能会想为什么要将像 Spring Boot 这样有用的话题放到书的结尾呢。你甚至可能会想,如果我早一点介绍 Spring Boot 的话,那么很多之前所学的内容将会更加简单。确实,Spring Boot 在 Spring 之上提供了很有意思的编程模型,一旦用上它之后,很难想象如果没有它的话,该如何编写 Spring 应用。

我可以说之所以将 Spring Boot 留在最后,是因为想让你对 Spring 有更深入的理解(反正对你有好处就是了)。尽管可以这么讲,但真正的原因是 Spring Boot 推出的时候,本书的大部分内容已经写完了。所以我只能将其放到一个不影响整本书的地方:也就是结尾。

谁知道呢?也许在本书的下一版中,从一开始我就会介绍 Spring Boot。