springboot3.5.3依賴學習

springboot3.5.3依賴學習

? Spring Boot BOM(spring-boot-dependencies)是 Spring 官方維護的超級依賴清單,覆蓋了 Spring 生態中幾乎所有核心庫、常用工具庫及第三方依賴。其作用是統一管理這些依賴的版本,確保它們相互兼容。以下是 Spring Boot 3.5.3 BOM 中最核心、最常用的依賴列表(按功能分類),并標注其作用:

一、核心基礎庫(Spring Framework 核心)

這些是 Spring Boot 運行的基礎,提供 IoC、AOP、事件機制等核心功能。

依賴坐標版本(3.5.3)作用
org.springframework:spring-core6.1.8Spring 核心工具類(如 BeanUtilsPropertyResolver),所有 Spring 庫的基礎依賴。
org.springframework:spring-context6.1.8IoC 容器和上下文管理(如 ApplicationContextBeanFactory),支持注解驅動的依賴注入。
org.springframework:spring-beans6.1.8Bean 的定義、創建和管理(如 @Bean@Autowired 注解的底層實現)。
org.springframework:spring-aop6.1.8面向切面編程(AOP)支持(如 @Aspect@Transactional 事務注解的底層實現)。
org.springframework:spring-expression6.1.8SpEL(Spring 表達式語言)支持(如 @Value("#{systemProperty.xxx}"))。

二、Web 開發核心依賴

用于構建 Web 應用(REST API、Servlet 應用等),包含 Servlet 容器、HTTP 處理、JSON 序列化等工具。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-web3.5.3Web 開發基礎 Starter,自動傳遞引入以下子依賴: - spring-boot-starter-tomcat(嵌入式 Tomcat 容器) - spring-boot-starter-json(JSON 序列化/反序列化) - spring-boot-starter-validation(參數校驗) - spring-webmvc(MVC 框架,支持 @Controller@RequestMapping
org.springframework:spring-webmvc6.1.8MVC 框架核心(如 DispatcherServletHandlerMapping),處理 HTTP 請求與響應的映射。
org.apache.tomcat.embed:tomcat-embed-core10.1.18嵌入式 Tomcat 容器的核心類(Spring Boot 默認的 Web 容器)。
com.fasterxml.jackson.core:jackson-databind2.15.3JSON 序列化/反序列化的核心庫(Spring MVC 默認使用 Jackson 處理 JSON)。
jakarta.validation:jakarta.validation-api3.0.2JSR-380(Bean Validation 3.0)規范接口(如 @NotBlank@Size 注解的定義)。
org.hibernate.validator:hibernate-validator8.0.1.FinalHibernate 對 Bean Validation 的實現(支持 JSR-380 規范的具體校驗邏輯)。

三、數據訪問與持久化依賴

用于數據庫操作、ORM(對象關系映射)、連接池管理等。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-data-jpa3.5.3JPA(Java Persistence API)Starter,自動傳遞引入以下子依賴: - spring-orm(ORM 核心) - hibernate-core(Hibernate ORM 實現) - jakarta.persistence:jakarta.persistence-api(JPA 規范接口) - com.zaxxer:HikariCP(高性能數據庫連接池)
org.springframework:spring-orm6.1.8ORM(對象關系映射)核心支持(如 SessionFactoryEntityTransaction)。
org.hibernate.orm:hibernate-core6.4.4.FinalHibernate ORM 實現(將 Java 對象映射到數據庫表,支持 HQL 查詢)。
com.zaxxer:HikariCP5.0.1高性能數據庫連接池(Spring Boot 默認的 JDBC 連接池,替代舊的 H2 數據庫連接池)。
org.springframework:spring-jdbc6.1.8JDBC 核心支持(如 JdbcTemplate,簡化原生 JDBC 操作)。
com.mysql:mysql-connector-j8.0.33MySQL 數據庫驅動(Spring Boot BOM 會自動匹配當前 Spring Boot 版本兼容的驅動版本)。

四、安全相關依賴

用于身份認證、授權、OAuth2 等安全場景。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-security3.5.3安全 Starter,自動傳遞引入以下子依賴: - spring-security-core(安全核心) - spring-security-config(安全配置) - spring-security-web(Web 安全支持,如 @PreAuthorize
org.springframework.security:spring-security-core6.5.1安全核心庫(如 AuthenticationAuthorization 接口,密碼加密工具 BCryptPasswordEncoder)。
org.springframework.security:spring-security-web6.5.1Web 安全支持(如處理 HTTP 認證、CSRF 保護、Session 管理)。

五、模板引擎依賴

用于生成動態 HTML 頁面(可選,現代 Web 應用更多使用前后端分離)。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-thymeleaf3.5.3Thymeleaf 模板引擎 Starter(支持在 HTML 中直接嵌入 Spring 表達式,適合服務端渲染)。
org.thymeleaf:thymeleaf-spring63.1.2.RELEASEThymeleaf 與 Spring 6 集成的適配器(支持 Spring 的 SpringTemplateEngine)。

六、測試工具依賴

用于單元測試、集成測試、端到端測試。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-test3.5.3測試 Starter,自動傳遞引入以下子依賴: - junit:junit(JUnit 5 測試框架) - org.mockito:mockito-core(Mock 對象工具) - org.hamcrest:hamcrest(斷言工具) - org.springframework:spring-test(Spring 測試支持,如 @SpringBootTest
org.junit.jupiter:junit-jupiter-api5.10.0JUnit 5 測試 API(支持 @Test@BeforeEach 等注解)。
org.mockito:mockito-core5.5.0Mock 對象工具(模擬外部依賴,如數據庫、HTTP 客戶端)。

七、日志與監控依賴

用于日志記錄、性能監控、健康檢查等。

依賴坐標版本(3.5.3)作用
org.springframework.boot:spring-boot-starter-logging3.5.3日志 Starter(默認使用 Logback,自動傳遞引入以下子依賴: - ch.qos.logback:logback-classic(Logback 核心) - org.slf4j:slf4j-api(SLF4J 日志門面)
ch.qos.logback:logback-classic1.5.6Logback 日志實現(支持 XML/properties 配置,輸出格式靈活)。
org.slf4j:slf4j-api2.0.17SLF4J 日志門面(統一日志接口,屏蔽底層日志實現差異)。
io.micrometer:micrometer-core1.12.1應用指標收集(如內存使用、請求耗時),支持集成 Prometheus、Grafana 等監控工具。

八、其他常用工具依賴

提供一些通用功能,如日期處理、配置解析、任務調度等。

依賴坐標版本(3.5.3)作用
org.springframework:spring-context-indexer6.1.8上下文索引器(加速 Spring 組件掃描,通過生成 META-INF/spring.components 文件優化啟動速度)。
org.springframework:spring-tx6.1.8事務管理支持(如 @Transactional 注解的底層實現)。
org.springframework:spring-jms6.1.8JMS(Java Message Service)支持(用于消息隊列,如 ActiveMQ、RabbitMQ)。
org.springframework:spring-webflux6.1.8WebFlux 框架核心(響應式編程支持,適合高并發異步場景)。

關鍵說明

  1. BOM 自動管理:上述所有依賴的版本均由 spring-boot-dependencies:3.5.3 BOM 統一控制,無需手動指定版本(除非需要覆蓋)。
  2. 傳遞依賴:Spring Boot Starter(如 spring-boot-starter-web)會自動傳遞引入其依賴的底層庫(如 Tomcat、Jackson),無需手動聲明。
  3. 兼容性保證:BOM 中的依賴版本經過官方測試,確保相互兼容(例如,Spring Framework 6.1.8 與 Hibernate 6.4.4.Final 兼容)。

總結

Spring Boot BOM 覆蓋了從核心框架到 Web 開發、數據訪問、安全、測試、日志等全場景的依賴,通過統一版本管理避免了“依賴地獄”。開發者只需在項目中引入 BOM,并聲明需要的 Starter(如 spring-boot-starter-web),即可自動獲得所有兼容的依賴,大幅簡化配置。

使用spring-boot-dependencies管理依賴

 <!-- 關鍵:通過 Spring Boot BOM 統一管理所有 Spring 生態依賴版本 --><dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>3.5.3</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914781.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914781.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914781.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

制作一款打飛機游戲80:道具碰撞

目前我們仍然無法拾取這些物品&#xff0c;它們只是簡單地掉落在地上。因此&#xff0c;我們需要對這些功能進行增強。目標?彈射物品?&#xff1a;當物品生成時&#xff0c;我們希望它們能以一定的力量彈出&#xff0c;而不是無力地掉落。?添加不同類型的物品?&#xff1a;…

Python編程基礎(六)| 用戶輸入和while循環

引言 很久沒有寫 Python 了&#xff0c;有一點生疏。這是學習《Python 編程&#xff1a;從入門到實踐&#xff08;第3版&#xff09;》的課后練習記錄&#xff0c;主要目的是快速回顧基礎知識。 練習1&#xff1a;汽車租賃 編寫一個程序&#xff0c;詢問用戶要租什么樣的汽車&a…

【華為機試】HJ52 計算字符串的編輯距離

文章目錄HJ52 計算字符串的編輯距離描述輸入描述輸出描述示例1HJ52 計算字符串的編輯距離描述輸入描述輸出描述示例1解題思路算法分析動態規劃狀態轉移狀態轉移方程算法流程圖DP表格示例三種操作詳解代碼實現思路時間復雜度分析關鍵優化技巧實際應用場景算法擴展面試考點完整題…

15.手動實現BatchNorm(BN)

15.1 BatchNorm操作手動實現 import torch from torch import nndef batch_norm(X,gamma,beta,moving_mean,moving_var,eps,momentum):if not torch.is_grad_enabled():#這個是推理模式X_hat(X-moving_mean)/torch.sqrt(moving_vareps)else:assert len(X.shape) in (2,4)if le…

【項目實踐】SMBMS(Javaweb版)匯總版

文章目錄前期準備工作數據庫、數據表創建web項目創建項目文件目錄配置Tomcat&#xff0c;導入依賴建立實體類編寫基礎公共方法類導入基礎資源登錄功能登錄頁面持久層dao層的用戶登錄及接口實現dao層接口實現所需的方法業務層sevice層的接口的實現接口實現相關的業務邏輯編寫ser…

隱藏源IP的核心方案與高防實踐

一、源IP暴露的風險 直接DDoS攻擊&#xff1a;2025年Q2全球DDoS攻擊峰值達3.8Tbps&#xff08;來源&#xff1a;Cloudflare報告&#xff09;漏洞利用&#xff1a;暴露的SSH端口平均每天遭受12,000暴力破解嘗試數據泄露&#xff1a;直接連接數據庫風險提升300% 二、4種有效隱藏方…

深度學習圖像分類數據集—五種電器識別分類

該數據集為圖像分類數據集&#xff0c;適用于ResNet、VGG等卷積神經網絡&#xff0c;SENet、CBAM等注意力機制相關算法&#xff0c;Vision Transformer等Transformer相關算法。 數據集信息介紹&#xff1a;五種電器識別分類&#xff1a;[notebook, phone, powerbank, tablet, w…

Windows11家庭版配置frigate 嵌入自研算法(基于Yolov8)-【2】

使用 YOLOv8 的 results.xyxy 結構&#xff0c;下面是一個完整的 MQTT 推送腳本&#xff0c;用于把識別到的目標&#xff08;比如突涌水、水漬、障礙物等&#xff09;發送到 Frigate 的 MQTT 接口。? 前提假設 YOLOv8 推理代碼已經運行并生成 results.xyxy。每一行是 [x1, y1,…

安裝llama-factory報錯 error: subprocess-exited-with-error

報錯信息如下 Using cached https://mirrors.aliyun.com/pypi/packages/17/89/940a509ee7e9449f0c877fa984b37b7cc485546035cc67bbc353f2ac20f3/av-15.0.0.tar.gz (3.8 MB)Preparing metadata (pyproject.toml) ... errorerror: subprocess-exited-with-error Preparing metad…

QT 多線程 管理串口

記錄一下自己使用多線程進行串口管理和數據讀取的過程。如果有問題的話可以發消息給我。背景在使用QT制作一個串口數據讀取處理的小軟件的時候&#xff0c;發現了存在界面卡頓的情況&#xff0c;感覺性能太低&#xff0c;于是考慮把串口數據的讀取和處理都放到子線程的緩沖區中…

在虛擬環境中復現論文(環境配置)

前提&#xff1a;已經下載condawinR&#xff0c;輸入cmd進入命令行conda create -n PPT python3.8.3 pytorch1.7.0conda create -n PPT(虛擬環境名) python3.8.3(包名) pytorch1.7.0(包名)安裝完畢&#xff0c;激活虛擬環境&#xff1a;conda activate PPT根據論文readme要求安…

Flutter Web 的發展歷程:Dart、Flutter 與 WasmGC

Flutter Web 應該是 Flutter 開發者里最不“受寵”的平臺了&#xff0c;但是其實 Flutter 和 Dart 團隊對于 Web 的投入一直沒有減少&#xff0c;這也和 Flutter 還有 Dart 的"出生"有關系&#xff0c;今天就借著 Dart 團隊的 mer A?acan 和 Martin Kustermann 在油…

c#方法關鍵字,ref、out、int

在 C# 中&#xff0c;ref、out 和 in 是用于方法參數傳遞的關鍵字&#xff0c;它們控制參數如何在方法和調用者之間傳遞數據。以下是對這三個關鍵字的詳細分析&#xff1a;1. ref 關鍵字&#xff08;引用傳遞&#xff09;作用允許方法修改調用者的變量&#xff1a;通過引用傳遞…

設計模式—初識設計模式

1.設計模式經典面試題分析幾個常見的設計模式對應的面試題。1.1原型設計模式1.使用UML類圖畫出原型模式核心角色&#xff08;意思就是使用會考察使用UML畫出設計模式中關鍵角色和關系圖等&#xff09;2.原型設計模式的深拷貝和淺拷貝是什么&#xff0c;寫出深拷貝的兩種方式的源…

深度學習-參數初始化、損失函數

A、參數初始化參數初始化對模型的訓練速度、收斂性以及最終的性能產生重要影響。它可以盡量避免梯度消失和梯度爆炸的情況。一、固定值初始化在神經網絡訓練開始時&#xff0c;將權重或偏置初始化為常數。但這種方法在實際操作中并不常見。1.1全零初始化將所有的權重參數初始化…

格密碼--Ring-SIS和Ring-LWE

1. 多項式環&#xff08;Polynomial Rings&#xff09; 設 f∈Z[x]f \in \mathbb{Z}[x]f∈Z[x] 是首一多項式&#xff08;最高次項系數為1&#xff09; 則環 RZ[x]/(f)R \mathbb{Z}[x]/(f)RZ[x]/(f) 元素為&#xff1a;所有次數 <deg?(f)< \deg(f)<deg(f) 的多項式…

前端工作需要和哪些人打交道?

前端工作中需要協作的角色及協作要點 前端工作中需要協作的角色及協作要點 前端開發處于產品實現的 “中間環節”,既要將設計方案轉化為可交互的界面,又要與后端對接數據,還需配合團隊推進項目進度。日常工作中,需要頻繁對接的角色包括以下幾類,每類協作都有其核心目標和…

萬字長文解析 OneCode3.0 AI創新設計

一、研究概述與背景 1.1 研究背景與意義 在 AI 技術重塑軟件開發的浪潮中&#xff0c;低代碼平臺正經歷從 “可視化編程” 到 “意圖驅動開發” 的根本性轉變。這種變革不僅提升了開發效率&#xff0c;更重新定義了人與系統的交互方式。作為國內領先的低代碼平臺&#xff0c;On…

重學前端006 --- 響應式網頁設計 CSS 彈性盒子

文章目錄盒模型一、盒模型的基本概念二、兩種盒模型的對比 舉例三、總結Flexbox 彈性盒子布局一、Flexbox 的核心概念??二、Flexbox 的基本語法????1. 定義 Flex 容器???2. Flex 容器的主要屬性????3. Flex 項目的主要屬性????三、Flexbox 的常見布局示例??…

rLLM:用于LLM Agent RL后訓練的創新框架

rLLM&#xff1a;用于LLM Agent RL后訓練的創新框架 本文介紹了rLLM&#xff0c;一個用于語言智能體后訓練的可擴展框架。它能讓用戶輕松構建自定義智能體與環境&#xff0c;通過強化學習進行訓練并部署。文中還展示了用其訓練的DeepSWE等智能體的出色表現&#xff0c;以及rLL…