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-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>