SpringBoot依赖管理特性

依赖管理

在SpringBoot项目中可以看到如下父项目:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.10</version>
    <relativePath/> 
</parent>
  • 该项目是用来做依赖管理的。当引入其他依赖时,不需要在指定版本。

查看spring-boot-starter-parent项目,可以看到它的父项目如下:

<parent>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-dependencies</artifactId>
  <version>2.4.10</version>
</parent>

进入spring-boot-dependencies,可以看到<properties>中声明了开发中常用的jar包版本:

<properties>
  <activemq.version>5.16.3</activemq.version>
  <antlr2.version>2.7.7</antlr2.version>
  <appengine-sdk.version>1.9.91</appengine-sdk.version>
  <artemis.version>2.15.0</artemis.version>
  <aspectj.version>1.9.7</aspectj.version>
  <assertj.version>3.18.1</assertj.version>
  <atomikos.version>4.0.6</atomikos.version>
  <awaitility.version>4.0.3</awaitility.version>
 ...
</properties>

总结:SpringBoot项目的父项目中几乎声明了开发中常用的依赖版本,在引入依赖时可以不需要在指定版本号

自定义依赖版本

在当前SpringBoot项目中可以通过指定<properties>来自定义依赖为我们想要的版本。

<properties>
    <mysql.version>5.1.41</mysql.version>
</properties>
<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

starters

starters 包含许多依赖项,可以使用这些依赖项来快速启动和运行项目,对于各种开发场景可能用到的依赖,用户只需要在 Maven 中引入 starter 依赖即可。所有官方依赖项都遵循spring-boot-starter-*这种类似的命名模式,其中*是特定类型的应用程序。例如如果想开始使用 Spring 和 JPA 进行数据库访问,在项目中需要包含该依赖项:spring-boot-starter-data-jpa

如果官方提供的各种starter无法满足我们的需求,我们可以创建我们自己的starter。第三方创建的starter不推荐以spring-boot开头,第三方启动器通常以项目名称开头。例如,名为thirdpartyproject的第三方启动项目通常会命名为thirdpartyproject-spring-boot-starter

上一篇:深入理解SpringBoot核心机制《spring-boot-starter》


下一篇:springboot 学习(三) 自定义starter启动器