Pom文件的依赖与starter启动器的作用

Pom文件的依赖

我们进入POM文件,首先是看到的是Pom文件中的parent

parent是Spring Boot的框架版本控制中心

<!--    导入springboot版本和框架依赖     -->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.3</version>
    <relativePath></relativePath>
</parent>

在这里插入图片描述

点进去看一下parent是如何控制版本的。点进去之后,发现它也有一个父工程
在这里插入图片描述
它的父工程为spring-boot-dependencies,看到名字应该想到,是springboot的依赖。同时还有其他东西。再点进去,看到里面有<dependencyManagement>,管理各种依赖的版本。

在这里插入图片描述
在这里插入图片描述
到这里就差不多理解了parent是如何控制版本的。

我们创建的springboot工程是spring-boot-start-parent的子工程,spring-boot-starter-parentspring-boot-denpendencies的子工程,父工程通过dependencyManagement控制了各种依赖的版本。所以当子工程导入依赖时,可以不写版本,自动使用父工程规定的版本,以此来进行版本的控制。

spring-boot场景启动器

starter:spring-boot场景启动器

我们以web启动器为例:

<!--    导入动态web场景启动器    -->
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

我们还是点进去看到spring-boot-starter-web的内容:

扫描二维码关注公众号,回复: 14517043 查看本文章
<dependencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter</artifactId>
    <version>2.6.3</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-json</artifactId>
    <version>2.6.3</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <version>2.6.3</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.15</version>
    <scope>compile</scope>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.15</version>
    <scope>compile</scope>
  </dependency>
</dependencies>

可以看到里面集成了web开发的其他依赖,也就是说通过添加Spring-boot-starter-web依赖,它就导入了web环境所有的依赖,只需导入starter,可自动导入web模块正常运行所依赖的组件。其他的starter也是一样的。

springboot出厂默认就写好了很多starter,如:
spring-boot-starter-activemq,spring-boot-starter-aop,spring-boot-starter-data-redis,spring-boot-starter-data-solr等

重要提示:Spring Boot将所有的绝大部分框架整合场景都进行了抽取,做成一个个的starters(启动器),只需要在项目里面引入这些starter相关整合所需的依赖都会导入进来

猜你喜欢

转载自blog.csdn.net/weixin_45525272/article/details/126790213
今日推荐