这里就是starter能够自动配置的秘密
。
此外,有些朋友看其他人定义的springboot starter可能会有疑惑 。
先看看druid-spring-boot-starter

文章插图
alibaba
定义的druid-spring-boot-starter
只有xxx-spring-boot-starter.jar文件,而没有xxx-spring-boot-autoconfigure.jar文件 。再看看
spring-boot-starter-jdbc
:
文章插图
更神奇的是这个文件中连
pom.xml
都没有,一脸懵逼 。。。。。。。是不是我讲错了?
答:其实没有 。
SpringBoot
的原则是约定优于配置
。从spring-boot-starter-jdbc内部空实现来看,它的约定是要把xxx-spring-boot-starter.jar和xxx-spring-boot-autoconfigure.jar区分开的 。个人认为,alibaba定义得并不好,没有遵照springboot的约定,虽然功能不受影响 。(这个地方欢迎一起探讨一下)
而springboot自己定义的spring-boot-starter-jdbc为什么连pom.xml文件也没有呢?
它不需要依赖xxx-spring-boot-autoconfigure.jar文件吗?
因为springboot把所有的自动配置的类都统一放到spring-boot-autoconfigure.jar下面了:

文章插图
spring.factories
文件内容如下:
文章插图
SpringBoot这样集中管理自动配置,而不需要从各个子包中遍历,我个人认为是为了查找效率 。
我们最后再看看
spring-cloud-starter-openfegin

文章插图
明显看到,它是遵循了我们说的原则的 。
除此之外,还有一个原则一顺便提一下 。
SpringBoot
和SpringCloud
系列定义jar包的名称是:- spring-boot-starter-xxx.jar
- spring-cloud-starter-xxx.jar
- xxx-spring-boot-starter.jar
求一键三连:点赞、转发、在看 。
关注公众号:【苏三说技术】,在公众号中回复:面试、代码神器、开发手册、时间管理有超赞的粉丝福利,另外回复:加群,可以跟很多BAT大厂的前辈交流和学习 。
经验总结扩展阅读
- 比较高级的土味情话
- 大麦小麦和燕麦的区别
- 2023年2月15日是请佛吉日吗 2023年2月15日是请佛的黄道吉日吗
- 钨做灯丝的原因
- 雄蚕蛾泡酒方法
- 微信运动关注的人是什么意思
- 通大便的食物与水果
- 经典力学的奠基人是谁
- 中度贫血会头晕吗
- 养生堂维生素c的功效