当前位置: 代码网 > it编程>编程语言>Java > SpringBoot Starter Parent使用及说明

SpringBoot Starter Parent使用及说明

2025年09月23日 Java 我要评论
引言spring-boot-starter-parent 是一个特殊的项目,为基于 spring boot 的应用程序提供默认配置和默认依赖。在本 spring boot 教程中,我们将深入了解所有

引言

spring-boot-starter-parent 是一个特殊的项目,为基于 spring boot 的应用程序提供默认配置和默认依赖。

在本 spring boot 教程中,我们将深入了解所有 spring boot 项目内部使用的 spring-boot-starter-parent 依赖项。我们将探讨此依赖项所提供的所有配置选项,以及如何根据需要覆盖这些默认配置。

快速引入

如果你的工程是基于maven构建的,可以在pom.xml中按以下方式引入:

<parent>
	<groupid>org.springframework.boot</groupid>
	<artifactid>spring-boot-starter-parent</artifactid>
	<version>3.1.2</version>
	<relativepath/> <!-- lookup parent from repository -->
</parent>

类似的,如果是基于gradle构建,可以参考按以下方式在build.gradle中引入:

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.2'
	id 'io.spring.dependency-management' version '1.1.2'
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter'
	testimplementation 'org.springframework.boot:spring-boot-starter-test'
}

什么是spring boot starter parent项目

spring boot 旨在简化构建 spring 应用程序的过程,同时尽量减少配置工作量。为此,诞生了 spring-boot-starter-parent父项目,为基于 spring boot 的应用程序提供默认配置和依赖项管理。

使用 spring-boot-starter-parent 作为父项目,可以确保应用程序遵循 spring boot 推荐的最佳实践,并且能够轻松地利用 spring boot 提供的各种特性。

<project xmlns="http://maven.apache.org/pom/4.0.0"
  xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
  xsi:schemalocation="http://maven.apache.org/pom/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelversion>4.0.0</modelversion>
  <groupid>com.howtodoinjava</groupid>
  <artifactid>spring-webmvc</artifactid>
  <packaging>jar</packaging>
  <version>0.0.1-snapshot</version>
  <name>spring-webmvc maven webapp</name>
  <url>https://howtodoinjava.com</url>

  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>3.1.2</version>
    <relativepath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    <java.version>17</java.version>
  </properties>

    <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
    ...
    ...
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>

</project>

当我们创建一个 spring boot 项目时,我们使用 spring-boot-starter-parent 作为我们项目的 pom.xml 或 build.gradle 的父级。

添加它之后,我们的项目会从这个父项目中继承默认的构建、依赖项和配置,因此我们不必手动指定它们。

通过使用 spring-boot-starter-parent,我们可以快速启动 spring boot 应用程序开发并减少设置常见配置和依赖项所需的工作量。

spring boot dependencies 项目介绍

“spring boot starter parent”项目进一步扩展了 spring-boot-dependencies 项目,spring-boot-dependencies 项目的作用包括:

  • 统一依赖版本管理:为 spring boot 应用程序中常用的依赖项提供统一的版本管理,确保所有依赖项的版本都是兼容且经过测试的。
  • 减少版本冲突:通过集中管理所有依赖项的版本,避免了因版本不一致导致的问题。
  • 简化依赖声明:在项目中引用依赖项时,无需指定版本号,因为这些信息已经由 spring-boot-dependencies 统一管理。
<properties>
	<activemq.version>5.18.2</activemq.version>
	<angus-mail.version>1.1.0</angus-mail.version>
	<artemis.version>2.28.0</artemis.version>
	<aspectj.version>1.9.19</aspectj.version>
	<assertj.version>3.24.2</assertj.version>
	<awaitility.version>4.2.0</awaitility.version>
	...
	...
</properties>

我们可以参考 spring-boot-dependencies项目的最新版本,并检查其 pom.xml 以获取所有依赖项使用的最新版本。

项目依赖管理

引入默认版本的依赖

一旦我们在项目中声明了 spring-boot-starter-parent,我们就可以引入其中的任何依赖项,只需在 dependencies 标签中声明它们即可。

这些依赖项已经在 spring-boot-starter-parent 中指定了默认版本,因此无需在项目中再次指定版本号。

<dependencies>
    <!-- 引入 spring web starter -->
    <dependency>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-starter-web</artifactid>
    </dependency>
    
    <!-- 其他依赖项 -->
</dependencies>

由于 spring-boot-starter-parent 已经管理了所有依赖项的版本,因此上述代码片段中不需要指定版本号。这样可以简化依赖管理,并确保所有依赖项版本的一致性。

这种方式不仅简化了依赖项的管理,还确保了项目使用的是经过测试和验证的依赖项组合。

引入不同版本的依赖

要包含具有不同版本的依赖项,我们可以在 dependencymanagement 部分中指定依赖项及其版本。

这样做可以覆盖 spring-boot-starter-parent 中默认提供的版本,同时仍然享受统一版本管理带来的便利。

<dependencymanagement>
    <dependencies>
            <!-- 覆盖特定依赖项的版本 -->
            <dependency>
                <groupid>org.springframework.boot</groupid>
                <artifactid>spring-boot-starter-web</artifactid>
                <version>2.7.4</version> <!-- 特定版本 -->
            </dependency>
    </dependencies>
</dependencymanagement>

在这个例子中,spring-boot-starter-web 的版本在 dependencymanagement 部分中被指定为 2.7.4。

这样,在实际使用的依赖项中引用 spring-boot-starter-web 时,就可以使用这个指定的版本,而不是 spring-boot-starter-parent 中默认的版本。

通过这种方式,你可以灵活地覆盖或指定特定依赖项的版本,同时仍然保持项目依赖项的整体一致性。

或者,我们可以在属性部分覆盖所包含库的版本号。

<properties>
	<junit.version>4.13.2</junit.version>
	<junit-jupiter.version>5.9.3</junit-jupiter.version>
</properties>

总结

本 spring boot 教程讨论了特殊项目 spring-boot-starter-parent 和 spring-boot-dependencies,它们之间的继承关系,以及它们在我们创建的任何 spring boot 项目中所带来的好处。

我们还学习了如何包含默认依赖项以及如何覆盖这些依赖项的版本。

通过使用 spring-boot-starter-parent 和 spring-boot-dependencies,我们可以:

  • 简化依赖管理:避免在项目中显式指定每个依赖项的版本号,从而减少版本冲突的风险。
  • 统一版本控制:确保所有依赖项的版本都是统一管理的,这有助于维护项目的稳定性和兼容性。
  • 提高开发效率:通过预配置的默认设置和插件配置,可以更快地搭建项目基础结构。
  • 灵活覆盖版本:在需要时,可以在 dependencymanagement 部分中覆盖特定依赖项的版本,以适应特定项目需求。

总之,这些工具和最佳实践帮助开发者更容易地构建健壮且易于维护的 spring boot 应用程序。希望本教程对您的学习之旅有所帮助!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com