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-core | 6.1.8 | Spring 核心工具類(如 BeanUtils 、PropertyResolver ),所有 Spring 庫的基礎依賴。 |
org.springframework:spring-context | 6.1.8 | IoC 容器和上下文管理(如 ApplicationContext 、BeanFactory ),支持注解驅動的依賴注入。 |
org.springframework:spring-beans | 6.1.8 | Bean 的定義、創建和管理(如 @Bean 、@Autowired 注解的底層實現)。 |
org.springframework:spring-aop | 6.1.8 | 面向切面編程(AOP)支持(如 @Aspect 、@Transactional 事務注解的底層實現)。 |
org.springframework:spring-expression | 6.1.8 | SpEL(Spring 表達式語言)支持(如 @Value("#{systemProperty.xxx}") )。 |
二、Web 開發核心依賴
用于構建 Web 應用(REST API、Servlet 應用等),包含 Servlet 容器、HTTP 處理、JSON 序列化等工具。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-web | 3.5.3 | Web 開發基礎 Starter,自動傳遞引入以下子依賴: - spring-boot-starter-tomcat (嵌入式 Tomcat 容器) - spring-boot-starter-json (JSON 序列化/反序列化) - spring-boot-starter-validation (參數校驗) - spring-webmvc (MVC 框架,支持 @Controller 、@RequestMapping ) |
org.springframework:spring-webmvc | 6.1.8 | MVC 框架核心(如 DispatcherServlet 、HandlerMapping ),處理 HTTP 請求與響應的映射。 |
org.apache.tomcat.embed:tomcat-embed-core | 10.1.18 | 嵌入式 Tomcat 容器的核心類(Spring Boot 默認的 Web 容器)。 |
com.fasterxml.jackson.core:jackson-databind | 2.15.3 | JSON 序列化/反序列化的核心庫(Spring MVC 默認使用 Jackson 處理 JSON)。 |
jakarta.validation:jakarta.validation-api | 3.0.2 | JSR-380(Bean Validation 3.0)規范接口(如 @NotBlank 、@Size 注解的定義)。 |
org.hibernate.validator:hibernate-validator | 8.0.1.Final | Hibernate 對 Bean Validation 的實現(支持 JSR-380 規范的具體校驗邏輯)。 |
三、數據訪問與持久化依賴
用于數據庫操作、ORM(對象關系映射)、連接池管理等。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-data-jpa | 3.5.3 | JPA(Java Persistence API)Starter,自動傳遞引入以下子依賴: - spring-orm (ORM 核心) - hibernate-core (Hibernate ORM 實現) - jakarta.persistence:jakarta.persistence-api (JPA 規范接口) - com.zaxxer:HikariCP (高性能數據庫連接池) |
org.springframework:spring-orm | 6.1.8 | ORM(對象關系映射)核心支持(如 SessionFactory 、EntityTransaction )。 |
org.hibernate.orm:hibernate-core | 6.4.4.Final | Hibernate ORM 實現(將 Java 對象映射到數據庫表,支持 HQL 查詢)。 |
com.zaxxer:HikariCP | 5.0.1 | 高性能數據庫連接池(Spring Boot 默認的 JDBC 連接池,替代舊的 H2 數據庫連接池)。 |
org.springframework:spring-jdbc | 6.1.8 | JDBC 核心支持(如 JdbcTemplate ,簡化原生 JDBC 操作)。 |
com.mysql:mysql-connector-j | 8.0.33 | MySQL 數據庫驅動(Spring Boot BOM 會自動匹配當前 Spring Boot 版本兼容的驅動版本)。 |
四、安全相關依賴
用于身份認證、授權、OAuth2 等安全場景。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-security | 3.5.3 | 安全 Starter,自動傳遞引入以下子依賴: - spring-security-core (安全核心) - spring-security-config (安全配置) - spring-security-web (Web 安全支持,如 @PreAuthorize ) |
org.springframework.security:spring-security-core | 6.5.1 | 安全核心庫(如 Authentication 、Authorization 接口,密碼加密工具 BCryptPasswordEncoder )。 |
org.springframework.security:spring-security-web | 6.5.1 | Web 安全支持(如處理 HTTP 認證、CSRF 保護、Session 管理)。 |
五、模板引擎依賴
用于生成動態 HTML 頁面(可選,現代 Web 應用更多使用前后端分離)。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-thymeleaf | 3.5.3 | Thymeleaf 模板引擎 Starter(支持在 HTML 中直接嵌入 Spring 表達式,適合服務端渲染)。 |
org.thymeleaf:thymeleaf-spring6 | 3.1.2.RELEASE | Thymeleaf 與 Spring 6 集成的適配器(支持 Spring 的 SpringTemplateEngine )。 |
六、測試工具依賴
用于單元測試、集成測試、端到端測試。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-test | 3.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-api | 5.10.0 | JUnit 5 測試 API(支持 @Test 、@BeforeEach 等注解)。 |
org.mockito:mockito-core | 5.5.0 | Mock 對象工具(模擬外部依賴,如數據庫、HTTP 客戶端)。 |
七、日志與監控依賴
用于日志記錄、性能監控、健康檢查等。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework.boot:spring-boot-starter-logging | 3.5.3 | 日志 Starter(默認使用 Logback,自動傳遞引入以下子依賴: - ch.qos.logback:logback-classic (Logback 核心) - org.slf4j:slf4j-api (SLF4J 日志門面) |
ch.qos.logback:logback-classic | 1.5.6 | Logback 日志實現(支持 XML/properties 配置,輸出格式靈活)。 |
org.slf4j:slf4j-api | 2.0.17 | SLF4J 日志門面(統一日志接口,屏蔽底層日志實現差異)。 |
io.micrometer:micrometer-core | 1.12.1 | 應用指標收集(如內存使用、請求耗時),支持集成 Prometheus、Grafana 等監控工具。 |
八、其他常用工具依賴
提供一些通用功能,如日期處理、配置解析、任務調度等。
依賴坐標 | 版本(3.5.3) | 作用 |
---|---|---|
org.springframework:spring-context-indexer | 6.1.8 | 上下文索引器(加速 Spring 組件掃描,通過生成 META-INF/spring.components 文件優化啟動速度)。 |
org.springframework:spring-tx | 6.1.8 | 事務管理支持(如 @Transactional 注解的底層實現)。 |
org.springframework:spring-jms | 6.1.8 | JMS(Java Message Service)支持(用于消息隊列,如 ActiveMQ、RabbitMQ)。 |
org.springframework:spring-webflux | 6.1.8 | WebFlux 框架核心(響應式編程支持,適合高并發異步場景)。 |
關鍵說明
- BOM 自動管理:上述所有依賴的版本均由
spring-boot-dependencies:3.5.3
BOM 統一控制,無需手動指定版本(除非需要覆蓋)。 - 傳遞依賴:Spring Boot Starter(如
spring-boot-starter-web
)會自動傳遞引入其依賴的底層庫(如 Tomcat、Jackson),無需手動聲明。 - 兼容性保證: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>