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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…