Spring Boot 核心模塊詳解(12 個(gè)模塊詳解及作用說(shuō)明)
1、Spring Boot 項(xiàng)目介紹
Spring Boot 是 Spring 全家桶項(xiàng)目中的一個(gè)子項(xiàng)目,也是 Spring 組件應(yīng)用一站式解決方案,它基于 Spring 框架,主要作用是通過(guò) “約定優(yōu)于配置” 的核心思想,顯著降低了 Spring 應(yīng)用的門(mén)檻,讓開(kāi)發(fā)者能夠快速構(gòu)建生產(chǎn)級(jí)的獨(dú)立應(yīng)用。所以現(xiàn)在 Spring Boot 也成了后端標(biāo)準(zhǔn)的開(kāi)發(fā)框架。
和 Spring 框架一樣,Spring Boot 框架也是由許多核心模塊組成的,每個(gè)模塊負(fù)責(zé)不同的功能點(diǎn),本文講著重于介紹 Spring Boot 相關(guān)的 12 個(gè)模塊的作用和功能。
下圖為 Spring-Boot 3.x 項(xiàng)目結(jié)構(gòu)截圖(模塊介紹的結(jié)構(gòu)以 Spring-Boot 3.x 為主):

2、Spring Boot 各模塊介紹
2.1、spring-boot
這是 Spring Boot 框架的主模塊,也是支持其他模塊的核心模塊,主要功能如下:
- 提供了一個(gè)啟動(dòng) Spring 應(yīng)用的主類(lèi),并提供了一個(gè)相當(dāng)方便的靜態(tài)方法,它的主要作用是負(fù)責(zé)創(chuàng)建和刷新 Spring 容器的上下文;
- 提供了內(nèi)嵌式的并可自由選擇搭配的 Servlet 應(yīng)用容器,如 Tomcat、Jetty、Undertow 等;
- 提供了一流的配置外部化支持;
- 提供了一個(gè)很方便的 Spring 容器上下文初始化器,包括對(duì)合理記錄日志默認(rèn)參數(shù)的支持。
2.2、spring-boot-autoconfigure
這個(gè)模塊提供了常用的 Java 主流技術(shù)的自動(dòng)配置組件,其提供的 @EnableAutoConfifiguration 注解就能啟用 Spring Boot 的自動(dòng)配置功能,它能根據(jù)類(lèi)路徑下的內(nèi)容決定是否自動(dòng)配置。
- 作用:實(shí)現(xiàn)自動(dòng)配置的核心模塊。
- 解釋?zhuān)篠pring Boot 通過(guò)這個(gè)模塊根據(jù)當(dāng)前 classpath 中的依賴(lài)、配置和類(lèi)自動(dòng)裝配 Spring Bean,極大地簡(jiǎn)化了配置流程。比如你引入了
spring-boot-starter-web,它就會(huì)自動(dòng)配置DispatcherServlet、Tomcat、Jackson等。
2.3、spring-boot-actuator:
這是 Spring Boot 提供的監(jiān)控模塊,比如,它提供了健康端點(diǎn)、環(huán)境端點(diǎn)、Spring Bean 端點(diǎn)等端點(diǎn),可以更好地幫助開(kāi)發(fā)者監(jiān)控應(yīng)用并和應(yīng)用進(jìn)行交互。
- 作用:提供生產(chǎn)環(huán)境中應(yīng)用監(jiān)控和管理的功能。
- 解釋?zhuān)喊ń】禉z查、應(yīng)用指標(biāo)、信息、環(huán)境變量、線程、日志級(jí)別等端點(diǎn)(比如
/actuator/health、/actuator/metrics)。
2.4、spring-boot-actuato-autoconfigure:
這個(gè)模塊是為 spring-boot-actuator 監(jiān)控模塊提供自動(dòng)配置的模塊。
- 作用:為 Actuator 提供自動(dòng)配置支持。
- 解釋?zhuān)菏?actuator 的自動(dòng)配置部分,讓你無(wú)需手動(dòng)注冊(cè)和配置每個(gè)監(jiān)控端點(diǎn),比如
HealthEndpointAutoConfiguration等類(lèi)。
2.5、spring-boot-parent
Parent POM,位于 Spring Boot 的底層模塊中,專(zhuān)門(mén)用于管理構(gòu)建插件、通用屬性、構(gòu)建 profile 等基礎(chǔ)配置。
它不是專(zhuān)門(mén)給用戶(hù)直接使用的,而是 Spring Boot 自己用來(lái)構(gòu)建 starter、autoconfigure 等模塊的父級(jí)。
而為用戶(hù)準(zhǔn)備的 Parent POM 是 spring-boot-starter-parent 模塊,它簡(jiǎn)化了用戶(hù)項(xiàng)目配置,同時(shí)繼承自 spring-boot-parent
2.6、spring-boot-dependencies
只管理各種依賴(lài)的版本,不包含任何構(gòu)建配置或插件設(shè)置。
可以用它來(lái):
- 替代 Spring Boot 提供的 Parent
- 在自己的 Parent 項(xiàng)目中引用它,來(lái)享受 Spring Boot 提供的版本管理
2.7、spring-boot-test:
這是模塊是 Spring Boot 的測(cè)試模塊,為應(yīng)用提供了許多非常有用的單元測(cè)試功能,包含了單元測(cè)試所需要的 常用注解、斷言、mock 支持、TestContext 框架集成 等內(nèi)容。
- 常用測(cè)試注解:
@SpringBootTest,@MockBean,@SpyBean,@TestComponent,@TestConfiguration等; - 斷言工具:
AssertJ集成、TestRestTemplate、OutputCapture等; - 模擬框架集成:支持 Mockito、Hamcrest、AssertJ;
- TestContext 支持:整合 Spring 測(cè)試上下文加載邏輯;
- 環(huán)境隔離工具:
@DirtiesContext,@TestPropertySource; - 應(yīng)用上下文加載:測(cè)試時(shí)自動(dòng)加載配置文件、Bean、環(huán)境等。
2.8、spring-boot-test-autoconfigure
這個(gè)模塊是為 spring-boot-test 測(cè)試模塊提供自動(dòng)配置的模塊。提供 一組自動(dòng)化配置的測(cè)試切片(Test Slice),用于做快速、輕量級(jí)的單元測(cè)試,只加載部分上下文(而不是整個(gè)應(yīng)用)。
@WebMvcTest:只加載 MVC 相關(guān)組件(不加載 Service/Repository)@DataJpaTest:加載 JPA Repository + 內(nèi)存數(shù)據(jù)庫(kù)(不加載 Web 層)…
2.9、spring-boot-devtools
spring-boot-devtools 是一個(gè)專(zhuān)為本地開(kāi)發(fā)環(huán)境優(yōu)化體驗(yàn)的開(kāi)發(fā)者工具模塊,主要用于Spring Boot應(yīng)用的開(kāi)發(fā)階段,它提供了一些顯著提升開(kāi)發(fā)效率的特性:自動(dòng)重啟、LiveReload、禁用緩存等功能,讓開(kāi)發(fā)過(guò)程更高效流暢。這個(gè)模塊的功能是可選的,只限于本地開(kāi)發(fā)環(huán)境,當(dāng)打成整包運(yùn)行時(shí),這些功能會(huì)自動(dòng)被禁用。
- 自動(dòng)重啟:代碼、配置文件等發(fā)生變更時(shí)自動(dòng)重啟 Spring Boot 應(yīng)用(比熱部署更快);
- LiveReload 支持:自動(dòng)刷新瀏覽器頁(yè)面(前提是瀏覽器安裝 LiveReload 插件);
- 禁用緩存:頁(yè)面模板不緩存(Thymeleaf、FreeMarker、Mustache),改完立即生效;
- 熱加載靜態(tài)資源支持:修改 static 文件夾中的資源時(shí),頁(yè)面自動(dòng)刷新。
2.10、spring-boot-doc
spring-boot-docs 是 Spring Boot 官方文檔的源碼模塊,用于生成 Spring Boot 的參考文檔站點(diǎn)。
2.11、spring-boot-starters
spring-boot-starters 是 Spring Boot 提供的一組模塊化依賴(lài)集合,用于快速集成常用功能(Web、JPA、Security、Thymeleaf等)。它本身是一個(gè) 聚合模塊(parent module),主要用于組織和管理所有 starter。
spring-boot-starters ├── spring-boot-starter ├── spring-boot-starter-web ├── spring-boot-starter-data-jpa ├── spring-boot-starter-security ├── spring-boot-starter-thymeleaf ├── spring-boot-starter-test ├── ...
2.12、spring-boot-tools
spring-boot-tools 是 Spring Boot 內(nèi)部使用的一組工具類(lèi)模塊集合,服務(wù)于打包、加載、開(kāi)發(fā)效率提升等目的,通常由插件或構(gòu)建系統(tǒng)間接使用。
spring-boot-tools ├── spring-boot-loader ← 打包可執(zhí)行 JAR 的核心 ├── spring-boot-buildpack-platform ← 支持 buildpack 容器構(gòu)建 ├── spring-boot-buildpack-tools ← buildpack 構(gòu)建邏輯 ├── spring-boot-docker-compose ← 支持 docker-compose 自動(dòng)管理 ├── spring-boot-antlib ← 支持 Apache Ant 構(gòu)建 ├── ...
X、后記
Spring Boot 的設(shè)計(jì)不僅追求極致的開(kāi)發(fā)效率,還為系統(tǒng)可維護(hù)性和擴(kuò)展性提供了堅(jiān)實(shí)的架構(gòu)基礎(chǔ)。掌握這些核心模塊的職責(zé)與配合方式,能夠幫助我們?cè)趯?shí)際項(xiàng)目中更加靈活地集成功能、排查問(wèn)題或做性能優(yōu)化。
希望這篇文章能為你在使用或深入理解 Spring Boot 的過(guò)程中提供一些實(shí)用的參考。如果你覺(jué)得有幫助,歡迎點(diǎn)贊收藏,也可以留言交流你的見(jiàn)解與實(shí)踐經(jīng)驗(yàn)。
- idea創(chuàng)建Springboot多模塊項(xiàng)目(聚合項(xiàng)目)
- springboot多模塊項(xiàng)目mvn打包遇到存在依賴(lài)但卻無(wú)法發(fā)現(xiàn)符號(hào)問(wèn)題
- springboot starter自定義實(shí)現(xiàn)公共模塊方式
- springboot的maven多模塊混淆jar包的實(shí)現(xiàn)方法
- ruoyi-springboot框架新增模塊調(diào)接口報(bào)404的解決方案
- SpringBoot?+?proguard+maven多模塊實(shí)現(xiàn)代碼混淆的方法
- springboot項(xiàng)目父子多模塊打包方式
- springboot下添加日志模塊和設(shè)置日志文件輸出的方法
相關(guān)文章
基于SpringBoot實(shí)現(xiàn)一個(gè)有趣好玩的年會(huì)抽獎(jiǎng)系統(tǒng)
年會(huì)抽獎(jiǎng)是每個(gè)企業(yè)年末的重要活動(dòng),本文將基于SpringBoot框架,設(shè)計(jì)并實(shí)現(xiàn)一個(gè)公正、有趣、好玩的年會(huì)抽獎(jiǎng)系統(tǒng),確保抽獎(jiǎng)過(guò)程的透明性和隨機(jī)性,同時(shí)增加多種互動(dòng)功能,有需要的可以了解下2026-02-02
Springboot創(chuàng)建子父工程過(guò)程圖解
這篇文章主要介紹了Springboot創(chuàng)建子父工程過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02
IntelliJ IDEA修復(fù)ESLint:修復(fù)'prettier/prettier'&n
本文介紹了在IntelliJIDEA或WebStorm中修復(fù)ESLint警告的多種方法,包括使用快速修復(fù)功能、配置保存時(shí)自動(dòng)修復(fù)、手動(dòng)運(yùn)行ESLint修復(fù)、檢查配置和依賴(lài)、臨時(shí)忽略規(guī)則以及常見(jiàn)問(wèn)題排查,需要的朋友可以參考下2026-03-03
springboot實(shí)現(xiàn)發(fā)送QQ郵箱
這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)發(fā)送QQ郵箱,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06
Springboot啟動(dòng)同時(shí)創(chuàng)建數(shù)據(jù)庫(kù)和表實(shí)現(xiàn)方法
這篇文章主要介紹了Springboot啟動(dòng)同時(shí)創(chuàng)建數(shù)據(jù)庫(kù)和表,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01
如何實(shí)現(xiàn)java遞歸 處理權(quán)限管理菜單樹(shù)或分類(lèi)
這篇文章主要介紹了如何實(shí)現(xiàn)java遞歸 處理權(quán)限管理菜單樹(shù)或分類(lèi),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01

