目录
1、前言
2、正文
我们打开一个SpringBoot项目,进入到它的pom.xml文件。
这里有两个spring-boot-starter-web和spring-boot-starter-test,我们来看一下。
我们就点击spring-boot-starter-web进入看一下。
我们从最后一个开始看,我们直接看到spring-webmvc。
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.14</version>
<scope>compile</scope>
</dependency>
这就是SpringMVC能工作起来的原因。
哦,我导了spring-boot-starter-web,而spring-boot-starter-web导了spring-webmvc,所以我不用导spring-webmvc,这不就套娃嘛。
这就是一个典型的依赖传递。因为A依赖了B,而B又依赖了C,所以A就不用直接写了,直接就可以用C里面的内容。
我们到这就知道了,一个starter可以代表加入了很多东西,干嘛用的呢?如果你使用A技术的东西,那你就只用导入A技术的stater就行了,其他的东西也不需要你管了,SpringBoot帮你管了
为什么SpringBoot这么好用,就是因为有很多个这样的Stater供我们使用,才让我们的开发效率变高的。
那这个Stater什么时候加进来的呢?
就是我们创建SpringBoot项目的时候选择技术集的时候加入进来的,而spring-boot-starter-test是默认加入进来的。
那到底是不是它帮我们做的这些事情呢?我们来验证一下。
然后刷新一下Maven,我们运行一下SpringBoot01Application。
好家伙,导入的依赖全部都不存在了,controller都运行不起来了。
当然了,Stater的作用远不止导入依赖这么简单。
当然了,SpringBoot并不是所有依赖都有(例如druid),如果遇到有哪些依赖没有的,就要用到最原始的方式导入依赖了。
3、小结
3.1 开发SpringBoot程序需要导入坐标时通常导入对应的starter
3.2 每个不同的starter根据功能不同,通常包含多个依赖坐标
3.3 使用starter可以实现快速配置的效果,达到简化配置的目的