一、起步依赖原理分析
在搭建SpringBoot环境的时候,在pom.xml中添加了两个依赖,对这两个依赖进行分析,分别是:
- SpringBoot的起步依赖:spring-boot-starter-parent
- web的起步依赖:spring-boot-starter-web
1、spring-boot-starter-parent
spring-boot-starter-parent 是Spring Boot的父级依赖,是一个特殊的starter,它用来提供相关的Maven默认依赖。使用它之后,常用的包依赖可以省去version标签。
咱们可以直接对源码进行分析,来看看源码,就拿上篇博文中搭建 SpringBoot 环境的代码,使用 idea 按住 Ctrl 点击 pom.xml 中的spring-boot-starter-parent
![0779f30a7051f67ee3be66adf04e2e6c.png](https://img-blog.csdnimg.cn/img_convert/0779f30a7051f67ee3be66adf04e2e6c.png)
截取了部分源码,在这里,可以看到SpringBoot的继承关系:
SpringBoot 继承 spring-boot-starter-parent
spring-boot-starter-parent 继承 spring-boot-dependencies
【1】咱们可以进入 spring-boot-dependencies 看一看,按住 Ctrl 点击 spring-boot-dependencies,截取部分代码:
![e2d520f3969d98eb3e4b24494f6d5ebc.png](https://img-blog.csdnimg.cn/img_convert/e2d520f3969d98eb3e4b24494f6d5ebc.png)
![97080d051e1f72b0f56a6910bca653a8.png](https://img-blog.csdnimg.cn/img_convert/97080d051e1f72b0f56a6910bca653a8.png)
这些配置里面主要是定义一些坐标的版本、依赖管理、插件管理,这里会根据我们在spring-boot-starter-parent定义的版本来提供相应版本的匹配,这就很好的解决了Spring导入版本依赖冲突的问题,所以我们的 SpringBoot 工程继承 spring-boot-starter-parent 后已经具备版本锁定等配置了。
可以看出起步依赖的作用就是进行依赖的传递。
【2】在 spring-boot-starter-parent 中,还有一个地方咱们可以看一下,那就是资源引入: