SpringBoot的pom.xml之starter

  • Post author:
  • Post category:其他



目录


1、前言


2、正文


3、小结


4、总结


1、前言

今天这篇博客主要是了解一下starter是什么东西?

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的作用远不止导入依赖这么简单。

3、小结

1、

starter


1.1 SpringBoot中常见项目名称,定义了当前项目使用的所有依赖坐标,以达到


减少依赖配置


的目的。

2、

parent


2.1 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到


减少依赖冲突


的目的。

2.2  spring-boot-starter-parent各版本间存在着诸多坐标版本不同。


3、实际开发


3.1 使用任意坐标时,仅书写GAV中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V

3.2 如发生坐标错误,再指定Version(要小心版本冲突)

当然了,SpringBoot并不是所有依赖都有(例如druid),如果遇到有哪些依赖没有的,就要用到最原始的方式导入依赖了。

4、总结

4.1 开发SpringBoot程序需要导入坐标时通常导入对应的starter

4.2 每个不同的starter根据功能不同,通常包含多个依赖坐标

4.3 使用starter可以实现快速配置的效果,达到简化配置的目的



版权声明:本文为weixin_53041251原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。