starter:场景启动器
xxx-autoconfigure:自动配置包
1.编写一个starter,没有代码,只是用来说明需要哪些依赖,其中引入真正场景的自动配置包
2.编写一个自动配置包,完成自动配置
1. 创建一个空项目
![image.png](https://cdn.nlark.com/yuque/0/2021/png/22162061/1626873013786-a020d6d8-7edd-4270-a583-a8940ade00c0.png#align=left&display=inline&height=139&margin=%5Bobject%20Object%5D&name=image.png&originHeight=185&originWidth=607&size=75479&status=done&style=none&width=455)
2. 添加两个模块
2.1 starter模块
2.2 自动配置模块
3. 模块中内容
3.1 starter模块
3.2 autoconfigure模块
1.删除模块里没用的东西(test文件夹、配置文件、主程序)
2.配置功能场景,比如HelloService
3.写自动配置类
(以后项目的容器中没有才使用这个自动配置——@ConditionalOnMissingBean)
(自动绑定HelloProperties中的属性——@EnableConfigurationProperties)
4.创建一个META-INF文件夹,其下写一个spring.factories,在这里面指定自动配置包下的哪个自动配置类(放到就是类的全路径)
4. 打包
1.使用maven下的plugins的clean+install对自动配置包打包(相当于安装到本地仓库)
2.使用maven把starter也打包放到仓库,别的项目就可以引入了
5. 别的项目引入此starter
在别的项目的pom下引入starter的依赖,成功使用自定义的自动配置