# SpringBoot3教程 - 20 自定义Starter

Starter 也就是场景启动器,通过 Starter 可以简化项目的依赖管理,在开发的时候,只需要引入指定的 Starter,而无需关心底层的依赖关系。同时 Starter 中可以包含配置信息和自动配置类,使得集成更加便捷,降低项目复杂性,提高开发效率。

而通过自定义 Starter ,我们可以将一些通用的功能或组件进行封装,可以在多个项目之间进行共享和复用,减少重复代码和配置。各个项目也可以有统一的配置标准,减少配置差异和错误,提高代码质量和一致性。

通过前面自动配置原理的学习,下面我们来介绍一下自定义 Starter 的实现。

# 20.1 自定义Starter说明

# 1 Starter模块说明

Starter 一般由两个模块构成:

  • xxx-autoconfigure 模块,提供自动配置功能;
  • xxx-starter 模块,提供依赖管理功能,然后在 xxx-starter 模块引入 xxx-autoconfigure 模块。

查看官方的 starter,例如 spring-boot-starter

可以看到其中没有任何的java代码,通过项目的pom.xml去查看依赖,跳进 spring-boot-starter 的pom.xml,可以看到最终依赖了spring-boot-autoconfigure

所以启动器只用来做依赖导入,另外专门来写一个自动配置模块,启动器依赖自动配置;使用 Starter 的人只需要引入启动器(Starter),启动器再自动导入自动配置模块。

# 2 Starter名称说明

编写 Starter 的名称,我们还是不要太随意,按照指定的格式,规范且专业:

SpringBoot 官方Starter的名称都是如下格式:

  • 格式:spring-boot-starter-模块名
  • 举个栗子:spring-boot-starter-webspring-boot-starter-jdbc

自定义 Starter 的名称一般使用如下格式:

  • 格式:模块-spring-boot-starter
  • 举个栗子:mybatis-spring-boot-starterjasypt-spring-boot-starter

所以这里我们也按照这个格式。

下面开始创建项目。

内容未完......