1)spring-boot-starter-parent
所有spring-boot项目的父工程,打开项目的pom文件,ctrl+左键单击可以进入文件内部。
可以看到这个父工程还要一个父工程spring-boot-dependencies,他规定了springboot项目全部的版本信息,如果子工程不作声明,则直接继承父工程定义的版本信息(版本锁定)。
2)spring-boot-starter-web
没有父工程,导入了spring-web以及spring-webmvc的插件,我们通过导入spring-boot-starter-web完成了对web相关插件的导入,这就是依赖的传递。
小结
1.在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
2.在各种starter中,定义完成了该功能需要的坐标合集,其中大部分版本信息来自于父工程。
3.我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获取到需要的jar包,并不会存在版本的冲突问题。