SpringBoot:核心模块盘点

Java
363
0
0
2023-01-12
标签   SpringBoot
spring-boot-project 是 spring-boot 核心技术包,其中包含了 spring-boot 所有基础源码,其中很多模块都是我们了解 spring-boot 的重点。 ~ 本篇内容包括:spring-boot-project 包介绍、Spring Boot 核心模块

文章目录

  • 一、spring-boot-project 包介绍
  • 1、Spring Boot 源码构成
  • 2、Spring Boot 核心技术包(spring-boot-project)
  • 二、Spring Boot 核心模块
  • 1、spring-boot
  • 2、spring-boot-actuator-autoconfigure
  • 3、spring-boot-actuator
  • 4、spring-boot-autoconfigure
  • 5、spring-boot-cli
  • 6、spring-boot-dependencies
  • 7、spring-boot-devtools
  • 8、spring-boot-docs
  • 9、spring-boot-parent
  • 10、spring-boot-properties-migrator
  • 11、spring-boot-starters
  • 12、spring-boot-test
  • 13、spring-boot-test-autoconfigure 模块
  • 14、spring-boot-tools 模块

一、spring-boot-project 包介绍

1、Spring Boot 源码构成

Spring Boot v2.1.0.RELEASE版本 源码地址:https://github.com/spring-projects/spring-boot/tree/v2.1.0.RELEASE

img

可以看到 SpringBoot2.x 的源码主要包含 4 个包:spring-boot-project、spring-boot-samples、spring-boot-samples-invoker、spring-boot-test

  • spring-boot-project:为 spring-boot 核心技术包,其中包含了 spring-boot 所有基础源码
  • spring-boot-samples / spring-boot-samples-invoker:为 springboot 的案例包,在高版本后会删除此包
  • spring-boot-test:为 springboot 的测试包,包含了系统集成测试、部署测试、冒烟测试

2、Spring Boot 核心技术包(spring-boot-project)

我们知道 spring-boot-project 是 spring-boot 核心技术包,其中包含了 spring-boot 所有基础源码:

img

二、Spring Boot 核心模块

1、spring-boot

spring-boot 包含模块:spring-core、spring-context

spring-boot 是 SpringBoot 的主模块,也是支持其他模块的核心模块,主要包含以下几点:

  • 提供了一个启动 Spring 应用的主类,并提供了一个相当方便的静态方法,它的主要是作用是负责创建和刷新 Spring 容器的上下文;
  • 内嵌式的并可自由选择搭配的 Web 应用容器,如:Tomcat、Jetty、Undertow 等;
  • 提供一个很方便的 Spring 容器上下文初始化器,包括合理记录日志默认参数的支持;
  • 对配置外部化的支持。

2、spring-boot-actuator-autoconfigure

spring-boot-actuator-autoconfigure 提供了 spring-boot-actuator 的自动配置功能。

3、spring-boot-actuator

当系统运行时,我们想要了解系统运行的情况,比如程序是否存活、Jvm 状态怎么样。这时就需要有相应的对外接口,来让我们能方便的、自动的获取这些信息,这就是 Actuator 提供的功能。

spring-boot-actuator 是 spring-boot 周边组件之一,主要是用来查询或监控 spring-boot 项目各种组件、各种维度的度量指标,比如环境变量信息、日志级别、spring bean 信息、组件(redis、mq、db)健康状态等,可以通过 jmx 技术或者 http 技术来使用 actuator。

4、spring-boot-autoconfigure

spring-boot-autoconfigure 使 SpringBoot 可以根据类路径下的内容自动执行一些公共的大型应用程序,并且提供的 @EnableAutoConfiguration 注解启用 Spring 上下文的自动配置的功能。

spring-bootspring-boot-autoconfigure 是 SpringBoot 最重要的两个模块。

5、spring-boot-cli

Ps:可能很多 Java 程序员做了很久的 Spring Boot 开发,却并不知道 Spring Boot 居然也有命令行工具。

SpringBoot 的命令行工具,用于编译和运行 Groovy 源程序,可以非常简单地编写和运行应用程序。它还可以监控文件,并在发生更改后自动重新编译并重新启动应用程序。

spring-boot-cli 具有以下点

  • 它可以用来快速启动 Spring 。
  • 它可以运行 Groovy 脚本,开发人员不需要编写很多样板代码,只需要关注业务逻辑。
  • Spring Boot CLI 是创建基于 Spring 的应用程序的最快方法。

6、spring-boot-dependencies

spring-boot-dependencies 管理着我们使用的大部分依赖版本,spring-boot-parentspring-boot-starter-parent 都继承了 spring-boot-dependencies 所以我使用时,只要头部引入了父类(spring-boot-starter-parent ),就会发现有些依赖不需要写版本号。

spring-boot-dependenciesdependencyManagement 进行依赖管理,在 pluginManagement 中进行插件管理。

7、spring-boot-devtools

spring-boot-devtools 开发者工具模块,可以使 Spring Boot 应用支持热部署(修改了代码自动重启应用),提高开发者的开发效率,无需手动重启 Spring Boot 应用。

这个模块的功能是可选的,只限于本地开发阶段,当打成整包运行时这些功能会被禁用。

8、spring-boot-docs

提供 Spring Boot 文档里的一些示例?

9、spring-boot-parent

其他项目的 parent,继承了 spring-boot-dependencies

10、spring-boot-properties-migrator

帮助开发者从 Spring Boot 1 迁移到 Spring Boot 2 。

11、spring-boot-starters

Spring Boot Starters 是一组方便的依赖描述符,您可以将它们包含在您的应用程序中。您可以获得所需的所有 Spring 和相关技术的一站式服务,而无需搜索示例代码和复制粘贴大量依赖项描述符。

例如,如果想使用 Spring 和 JPA 进行数据库访问,只需将 spring-boot-starter-data-jpa 这一依赖项包含在项目中就可以开始了。

12、spring-boot-test

spring-boot-test 模块,是 SpringBoot 测试模块,为应用测试提供了许多非常有用的核心功能。

spring-boot-test 模块,为 Spring Boot 提供测试方面的支持,例如说:

  • SpringBootTestRandomPortEnvironmentPostProcessor 类,提供随机端口。
  • org.springframework.boot.test.mock.mockito 包,提供 Mockito 的增强。

13、spring-boot-test-autoconfigure 模块

提供了 spring-boot-test 的自动配置功能。

14、spring-boot-tools 模块

spring-boot-tools 模块,它是 Spring Boot 提供的工具箱,其内有多个子 Maven 项目。

注意哟,我们这里说的工具箱,并不是我们在 Java 里的工具类。

举个例子:其子模块 spring-boot-maven-plugin:提供 Maven 打包 Spring Boot 项目的插件。