一、背景介绍
我们在使用Spring Cloud全家桶构建微服务应用时,经常能看到spring-boot-xxx-starter的依赖,像spring-boot-starter-web、spring-cloud-starter-feign、spring-boot-starter-test、mybatis-spring-boot-starter,仿佛只要带上starter的东西,你就拥有了这个组件的一切,包括所有的配置,引用类都搞定了,这样一个神奇的拿来就用的东西,是怎么实现的呢?我们自己能不能把自己的工具包做成一个starter?
二、Spring Boot Starter组件规范
- 命名规范
groupId:这个标签的命名没做太多要求,基本上使用公司域名 项目名方式,如官方一般使用org.springframework.cloud,第三方一般用自己公司域名,如org.mybatis.spring.boot。artifactId:这个标签的命名Spring官方给了建议命名方式,Spring官方自己发布的组件,命名方式是spring-boot-starter-xxx,xxx表示组件名称,像上文提及的spring-boot-starter-web和spring-cloud-starter-feign;第三方开发的组件,命名方式是xxx-spring-boot-starter,如mybatis-spring-boot-starter。
- 工程规范
以maven工程为例,Spring Boot Starter用多模块方式建立工程,工程内有autoconfigure模块和starter模块。autoconfigure模块为自动配置模块,里面包含配置加载,