欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring Boot 核心模塊詳解(12 個(gè)模塊詳解及作用說明)

 更新時(shí)間:2025年04月22日 11:40:05   作者:栗箏i  
和 Spring 框架一樣,Spring Boot 框架也是由許多核心模塊組成的,每個(gè)模塊負(fù)責(zé)不同的功能點(diǎn),本文講著重于介紹 Spring Boot 相關(guān)的 12 個(gè)模塊的作用和功能,感興趣的朋友一起看看吧

1、Spring Boot 項(xiàng)目介紹

Spring Boot 是 Spring 全家桶項(xiàng)目中的一個(gè)子項(xiàng)目,也是 Spring 組件應(yīng)用一站式解決方案,它基于 Spring 框架,主要作用是通過 “約定優(yōu)于配置” 的核心思想,顯著降低了 Spring 應(yīng)用的門檻,讓開發(fā)者能夠快速構(gòu)建生產(chǎn)級(jí)的獨(dú)立應(yīng)用。所以現(xiàn)在 Spring Boot 也成了后端標(biāo)準(zhǔn)的開發(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 為主):

image-20250421104511938

2、Spring Boot 各模塊介紹

2.1、spring-boot

這是 Spring Boot 框架的主模塊,也是支持其他模塊的核心模塊,主要功能如下:

  • 提供了一個(gè)啟動(dòng) Spring 應(yīng)用的主類,并提供了一個(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ù)類路徑下的內(nèi)容決定是否自動(dòng)配置。

  • 作用:實(shí)現(xiàn)自動(dòng)配置的核心模塊。
  • 解釋:Spring Boot 通過這個(gè)模塊根據(jù)當(dāng)前 classpath 中的依賴、配置和類自動(dòng)裝配 Spring Bean,極大地簡化了配置流程。比如你引入了 spring-boot-starter-web,它就會(huì)自動(dòng)配置 DispatcherServletTomcat、Jackson 等。

2.3、spring-boot-actuator:

這是 Spring Boot 提供的監(jiān)控模塊,比如,它提供了健康端點(diǎn)、環(huán)境端點(diǎn)、Spring Bean 端點(diǎn)等端點(diǎn),可以更好地幫助開發(fā)者監(jiān)控應(yīng)用并和應(yīng)用進(jìn)行交互。

  • 作用:提供生產(chǎn)環(huán)境中應(yīng)用監(jiān)控和管理的功能。
  • 解釋:包括健康檢查、應(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)配置支持。
  • 解釋:是 actuator 的自動(dòng)配置部分,讓你無需手動(dòng)注冊和配置每個(gè)監(jiān)控端點(diǎn),比如 HealthEndpointAutoConfiguration 等類。

2.5、spring-boot-parent

Parent POM,位于 Spring Boot 的底層模塊中,專門用于管理構(gòu)建插件、通用屬性、構(gòu)建 profile 等基礎(chǔ)配置。

它不是專門給用戶直接使用的,而是 Spring Boot 自己用來構(gòu)建 starter、autoconfigure 等模塊的父級(jí)。

而為用戶準(zhǔn)備的 Parent POM 是 spring-boot-starter-parent 模塊,它簡化了用戶項(xiàng)目配置,同時(shí)繼承自 spring-boot-parent

2.6、spring-boot-dependencies

只管理各種依賴的版本,不包含任何構(gòu)建配置或插件設(shè)置。

可以用它來:

  • 替代 Spring Boot 提供的 Parent
  • 在自己的 Parent 項(xiàng)目中引用它,來享受 Spring Boot 提供的版本管理

2.7、spring-boot-test:

這是模塊是 Spring Boot 的測試模塊,為應(yīng)用提供了許多非常有用的單元測試功能,包含了單元測試所需要的 常用注解、斷言、mock 支持、TestContext 框架集成 等內(nèi)容。

  • 常用測試注解:@SpringBootTest, @MockBean, @SpyBean, @TestComponent, @TestConfiguration 等;
  • 斷言工具:AssertJ 集成、TestRestTemplate、OutputCapture 等;
  • 模擬框架集成:支持 Mockito、Hamcrest、AssertJ;
  • TestContext 支持:整合 Spring 測試上下文加載邏輯;
  • 環(huán)境隔離工具:@DirtiesContext, @TestPropertySource;
  • 應(yīng)用上下文加載:測試時(shí)自動(dòng)加載配置文件、Bean、環(huán)境等。

2.8、spring-boot-test-autoconfigure

這個(gè)模塊是為 spring-boot-test 測試模塊提供自動(dòng)配置的模塊。提供 一組自動(dòng)化配置的測試切片(Test Slice),用于做快速、輕量級(jí)的單元測試,只加載部分上下文(而不是整個(gè)應(yīng)用)。

  • @WebMvcTest:只加載 MVC 相關(guān)組件(不加載 Service/Repository)
  • @DataJpaTest:加載 JPA Repository + 內(nèi)存數(shù)據(jù)庫(不加載 Web 層)…

2.9、spring-boot-devtools

spring-boot-devtools 是一個(gè)專為本地開發(fā)環(huán)境優(yōu)化體驗(yàn)的開發(fā)者工具模塊,主要用于Spring Boot應(yīng)用的開發(fā)階段,它提供了一些顯著提升開發(fā)效率的特性:自動(dòng)重啟、LiveReload、禁用緩存等功能,讓開發(fā)過程更高效流暢。這個(gè)模塊的功能是可選的,只限于本地開發(fā)環(huán)境,當(dāng)打成整包運(yùn)行時(shí),這些功能會(huì)自動(dòng)被禁用。

  • 自動(dòng)重啟:代碼、配置文件等發(fā)生變更時(shí)自動(dòng)重啟 Spring Boot 應(yīng)用(比熱部署更快);
  • LiveReload 支持:自動(dòng)刷新瀏覽器頁面(前提是瀏覽器安裝 LiveReload 插件);
  • 禁用緩存:頁面模板不緩存(Thymeleaf、FreeMarker、Mustache),改完立即生效;
  • 熱加載靜態(tài)資源支持:修改 static 文件夾中的資源時(shí),頁面自動(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 提供的一組模塊化依賴集合,用于快速集成常用功能(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)部使用的一組工具類模塊集合,服務(wù)于打包、加載、開發(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ì)不僅追求極致的開發(fā)效率,還為系統(tǒng)可維護(hù)性和擴(kuò)展性提供了堅(jiān)實(shí)的架構(gòu)基礎(chǔ)。掌握這些核心模塊的職責(zé)與配合方式,能夠幫助我們在實(shí)際項(xiàng)目中更加靈活地集成功能、排查問題或做性能優(yōu)化。

希望這篇文章能為你在使用或深入理解 Spring Boot 的過程中提供一些實(shí)用的參考。如果你覺得有幫助,歡迎點(diǎn)贊收藏,也可以留言交流你的見解與實(shí)踐經(jīng)驗(yàn)。

相關(guān)文章

  • Spring簡明分析Bean作用域

    Spring簡明分析Bean作用域

    scope用來聲明容器中的對(duì)象所應(yīng)該處的限定場景或者說該對(duì)象的存活時(shí)間,即容器在對(duì)象進(jìn)入其 相應(yīng)的scope之前,生成并裝配這些對(duì)象,在該對(duì)象不再處于這些scope的限定之后,容器通常會(huì)銷毀這些對(duì)象,這篇文章主要介紹了Spring中的Bean作用域,需要的朋友可以參考下
    2022-07-07
  • springboot如何添加task任務(wù)執(zhí)行隊(duì)列

    springboot如何添加task任務(wù)執(zhí)行隊(duì)列

    這篇文章主要介紹了springboot如何添加task任務(wù)執(zhí)行隊(duì)列問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 關(guān)于Java項(xiàng)目讀取resources資源文件路徑的那點(diǎn)事

    關(guān)于Java項(xiàng)目讀取resources資源文件路徑的那點(diǎn)事

    這篇文章主要介紹了關(guān)于Java項(xiàng)目讀取resources資源文件路徑的那點(diǎn)事,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 使用RocketMQTemplate發(fā)送帶tags的消息

    使用RocketMQTemplate發(fā)送帶tags的消息

    這篇文章主要介紹了使用RocketMQTemplate發(fā)送帶tags的消息,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java利用反射實(shí)現(xiàn)文件的讀取操作

    Java利用反射實(shí)現(xiàn)文件的讀取操作

    這篇文章主要介紹了Java利用反射實(shí)現(xiàn)文件的讀取操作,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • 簡單談?wù)凴xJava和多線程并發(fā)

    簡單談?wù)凴xJava和多線程并發(fā)

    認(rèn)識(shí)RxJava已經(jīng)有一段時(shí)間了,但是一直沒有機(jī)會(huì)在項(xiàng)目中嘗試,最近在新的項(xiàng)目里引進(jìn)了RxJava寫一些事件處理,在review代碼的時(shí)候發(fā)現(xiàn)了一些和多線程并發(fā)相關(guān)的問題,所以寫了這篇文章,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-03-03
  • 解決Java中new?BigDecimal()的坑

    解決Java中new?BigDecimal()的坑

    這篇文章主要介紹了解決Java中new?BigDecimal()的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Maven安裝及MyEclipse中使用Maven

    Maven安裝及MyEclipse中使用Maven

    這篇文章主要為大家詳細(xì)介紹了Maven安裝步驟,及MyEclipse中如何使用Maven,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Mybatisplus多表關(guān)聯(lián)分頁查詢多種實(shí)現(xiàn)方式

    Mybatisplus多表關(guān)聯(lián)分頁查詢多種實(shí)現(xiàn)方式

    本文主要介紹了Mybatisplus多表關(guān)聯(lián)分頁查詢多種實(shí)現(xiàn)方式,包括使用XML自定義SQL、Wrapper搭配自定義SQL、使用DTO與自定義SQL及結(jié)合PageHelper實(shí)現(xiàn)分頁查詢,感興趣的可以了解一下
    2025-03-03
  • myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問題

    myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問題

    這篇文章主要介紹了myBatis實(shí)現(xiàn)三級(jí)嵌套復(fù)雜對(duì)象的賦值問題,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11

最新評(píng)論