读者可根据日常习惯,选择熟悉的代码阅读 I 具,比如 Intellij IDEA、Spring Tool Suite、Eclipse、 MyEclipse 等。
阅读 Spring Boot 源代码之前,我们还需搭建基础阅读环境。Spring Boot 对 JDK 和构建工具有一定的要求, 比如 JDK 8+、Maven 3.3+、Gradle 5.x+等环境,满足相应需求即可。
为了达到更好的学习效果,建议大家使用实例+debug 的模式来进行学习。因此,源代码阅读 I 具最好支持实例的编写、运行、调试等功能。
本文使用 Itellj IDEA (简称 IDEA) 作为阅读代码工具,采用纯源代码阅读、实例+debug 两种模式配合进行学习。
其中纯源代码阅读模式可以帮助我们更好地进行代码的注释、编写、单元测试等操作,而实例+debug 模式可以让我们更好地理解整个项目的运行流程及功能的具体使用。图 1-2 和图1-3 展示 了通过 IDEA 阅读代码的两种模式。
咱们咱们都知道,Spring 所具有的强壮功用之一便是能够集成各种开源软件。 但跟着互联网的高速开展,各种结构层出不穷,这就对体系架构的灵敏性、扩展性、可伸缩性、高可用性都提出了新的要求。跟着项意图开展,Spring 慢慢地集成了更多的开源软件,引进很多装备文件,这会导致程序出错率高、运转功率低下的问题。为了处理这些情况,Spring Boot 应运而生。
Spring Boot 自身并不供给 Spring 的中心功用,而是作为 Spring 的脚手架结构,以到达快速构建项目、预置三方装备、开箱即用的意图。
约好优于装备(Convention Over Configuration),又称为按约好编程,是一种软件规划范式,旨在削减软件开发人员需要做决议的数量,执行起来简略而又不失灵敏。Spring Boot 的中心规划完美遵照了此范式。
Spring Boot 的功用从细节到全体都是根据“约好优于装备开发的,从根底结构的建立、装备文件、中间件的集成、内置容器以及其生态中各种 Starters,无不遵照此规划范式。Starter
作为 Spring Boot 的中心功用之一,根据主动装备代码供给了主动装备模块及依靠,让软件集成变得简略、易用。与此一起,Spring Boot 也在鼓舞各方软件安排创立自己的 Starter。
规划方针
提到 Spring Boot 的规划方针,值得一提的是 Spring Boot 的研制团队一 Pivotal 公司。Pivotal公司的企业目 标是致力于改动国际结构软件的方法(Weare transforming how the worldbuilds software)”。 Pivotal 公 司向企业客户供给云原生运用开发 PaaS 渠道及服务,选用灵敏软件开发方法论协助企业客户开发软件,然后进步软件开发人员工作功率、削减软件运维本钱,完成企业数字化转型、IT 立异,协助企业客户终究完成事务立异。
Spring Boot 结构的规划理念完美遵照了它所属企业的方针。Spring Boot 不是为已处理的问题供给新的处理方案,而是为渠道和开发者带来一种全新的体会:整合老练技能结构、屏蔽体系复杂性、简化已有技能的运用,然后下降软件的运用]槛,提高软件开发和运维的功率。
在 1.2 节中现已对 Spring Boot 的中心项目结构及功用做了相应的介绍,本节咱们从架构层面 了 解 一 下 Spring Boot 的 不同模 块之间的依 赖 关 系 如 图 1-4 所示 。
上图中为了更明晰地表达 Spring Boot 各项目之间的联系,咱们根据依靠的传递性,省掉了部分依靠联系。比方,Spring Boot Starters 不只依靠了 Spring Boot Autoconfigure 项目,还依靠了 Spring Boot 和 Spring,而 SpringBoot Autoconfigure 项目又依靠了 Spring Boot,Spring Boot 又依靠了 Spring 相关项目。因而在图中就省掉了 Spring Boot Starters 和底层依靠的相关。
Spring Boot Parent 是 Spring Boot 及图中依靠 Spring Boot 项意图 Parent 项目,相同为了结构明晰,图中不显现相关相关。
从图 1-4 中咱们咱们能够明晰地看到 Spring Boot 简直彻底根据 Spring,一起供给了 Spring Boot和 Spring Boot Autoconfigure 两个中心的模块,而其他相关功用又都是根据这两个中心模块打开的。本文相关的源代码剖析也是环绕两个中心模块打开。