SpringBoot Starter Parent使用及說明
引言
spring-boot-starter-parent 是一個特殊的項目,為基于 Spring Boot 的應(yīng)用程序提供默認配置和默認依賴。
在本 Spring Boot 教程中,我們將深入了解所有 Spring Boot 項目內(nèi)部使用的 spring-boot-starter-parent 依賴項。我們將探討此依賴項所提供的所有配置選項,以及如何根據(jù)需要覆蓋這些默認配置。
快速引入
如果你的工程是基于Maven構(gòu)建的,可以在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構(gòu)建,可以參考按以下方式在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 旨在簡化構(gòu)建 Spring 應(yīng)用程序的過程,同時盡量減少配置工作量。為此,誕生了 spring-boot-starter-parent父項目,為基于 Spring Boot 的應(yīng)用程序提供默認配置和依賴項管理。
使用 spring-boot-starter-parent 作為父項目,可以確保應(yīng)用程序遵循 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>
當我們創(chuàng)建一個 Spring Boot 項目時,我們使用 spring-boot-starter-parent 作為我們項目的 pom.xml 或 build.gradle 的父級。
添加它之后,我們的項目會從這個父項目中繼承默認的構(gòu)建、依賴項和配置,因此我們不必手動指定它們。

通過使用 spring-boot-starter-parent,我們可以快速啟動 Spring Boot 應(yīng)用程序開發(fā)并減少設(shè)置常見配置和依賴項所需的工作量。
Spring Boot Dependencies 項目介紹
“Spring Boot Starter Parent”項目進一步擴展了 spring-boot-dependencies 項目,spring-boot-dependencies 項目的作用包括:
- 統(tǒng)一依賴版本管理:為 Spring Boot 應(yīng)用程序中常用的依賴項提供統(tǒng)一的版本管理,確保所有依賴項的版本都是兼容且經(jīng)過測試的。
- 減少版本沖突:通過集中管理所有依賴項的版本,避免了因版本不一致導(dǎo)致的問題。
- 簡化依賴聲明:在項目中引用依賴項時,無需指定版本號,因為這些信息已經(jīng)由 spring-boot-dependencies 統(tǒng)一管理。
<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 標簽中聲明它們即可。
這些依賴項已經(jīng)在 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 已經(jīng)管理了所有依賴項的版本,因此上述代碼片段中不需要指定版本號。這樣可以簡化依賴管理,并確保所有依賴項版本的一致性。
這種方式不僅簡化了依賴項的管理,還確保了項目使用的是經(jīng)過測試和驗證的依賴項組合。
引入不同版本的依賴
要包含具有不同版本的依賴項,我們可以在 dependencyManagement 部分中指定依賴項及其版本。
這樣做可以覆蓋 spring-boot-starter-parent 中默認提供的版本,同時仍然享受統(tǒng)一版本管理帶來的便利。
<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>
總結(jié)
本 Spring Boot 教程討論了特殊項目 spring-boot-starter-parent 和 spring-boot-dependencies,它們之間的繼承關(guān)系,以及它們在我們創(chuàng)建的任何 Spring Boot 項目中所帶來的好處。
我們還學(xué)習(xí)了如何包含默認依賴項以及如何覆蓋這些依賴項的版本。
通過使用 spring-boot-starter-parent 和 spring-boot-dependencies,我們可以:
- 簡化依賴管理:避免在項目中顯式指定每個依賴項的版本號,從而減少版本沖突的風(fēng)險。
- 統(tǒng)一版本控制:確保所有依賴項的版本都是統(tǒng)一管理的,這有助于維護項目的穩(wěn)定性和兼容性。
- 提高開發(fā)效率:通過預(yù)配置的默認設(shè)置和插件配置,可以更快地搭建項目基礎(chǔ)結(jié)構(gòu)。
- 靈活覆蓋版本:在需要時,可以在 dependencyManagement 部分中覆蓋特定依賴項的版本,以適應(yīng)特定項目需求。
總之,這些工具和最佳實踐幫助開發(fā)者更容易地構(gòu)建健壯且易于維護的 Spring Boot 應(yīng)用程序。希望本教程對您的學(xué)習(xí)之旅有所幫助!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實戰(zhàn)之基于TCP實現(xiàn)簡單聊天程序
這篇文章主要為大家詳細介紹了如何在Java中基于TCP實現(xiàn)簡單聊天程序,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
解決springcloud啟動時報錯Connection refused:connect問題
這篇文章主要介紹了解決springcloud啟動時報錯Connection refused:connect問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05
spring boot優(yōu)雅集成redisson詳解
這篇文章主要為大家介紹了spring boot優(yōu)雅集成redisson詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11
Java實現(xiàn)赫夫曼樹(哈夫曼樹)的創(chuàng)建
給定N個權(quán)值作為N個葉子結(jié)點,構(gòu)造一棵二叉樹,若該樹的帶權(quán)路徑長度(WPL)達到最小,稱這樣的二叉樹為最優(yōu)二叉樹,也稱為哈夫曼樹(Huffman Tree)。這篇文章主要就是為大家介紹如何通過Java實現(xiàn)赫夫曼樹,需要的朋友可以參考一下2021-12-12
徹底解決IDEA中SpringBoot熱部署無效的問題(推薦)
這篇文章主要介紹了徹底解決IDEA中SpringBoot熱部署無效的問題,本文給大家?guī)韱栴}原因分析通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-09-09

