- 博客(54)
- 收藏
- 关注
原创 Spring Boot CORS 配置详解:CorsConfigurationSource 全面指南
是 Spring Framework 中处理 CORS 配置的核心抽象,通过实现,提供了基于 URL 模式的灵活配置能力。正确配置 CORS 对于现代 Web 应用至关重要,既能保证前端跨域访问的正常进行,又能确保应用的安全性。关键要点在 Spring Security 环境中优先使用Bean注意凭证与通配符的兼容性问题根据环境差异配置不同的安全策略合理利用预检请求缓存提升性能通过本文的详细示例和最佳实践,您可以构建出既安全又高效的 CORS 配置方案。
2025-11-24 21:07:11
2
原创 JavaScript Cookie 使用完整指南
JavaScript Cookie 是 Web 开发中不可或缺的重要技术,正确使用 Cookie 可以显著提升用户体验和应用安全性。正确操作 Cookie:使用原生 API 或第三方库进行增删改查合理配置属性:根据需求设置过期时间、路径、安全标志等确保安全性:采用加密、HttpOnly、Secure 等安全措施优化性能:控制 Cookie 大小和数量,合理设置生命周期处理常见问题:解决跨域、兼容性、设置失败等问题Cookie 技术虽然传统,但在用户认证、状态管理等方面仍然发挥着不可替代的作用。
2025-11-24 02:20:40
151
原创 Hutool-json 库完整指南
类名用途特点JSONUtil核心工具类,提供静态方法各种 JSON 操作的入口点JSONObject表示 JSON 对象类似 Map 结构,键值对集合JSONArray表示 JSON 数组类似 List 结构,有序集合JSONConfigJSON 处理配置自定义序列化/反序列化行为通过JSONConfig可以精细控制序列化过程。// 创建详细配置.setDateFormat("yyyy-MM-dd HH:mm:ss") // 日期格式。
2025-11-24 02:07:59
6
原创 Bean 配置注解 注册方案选择:@Component vs @Configuration + @Bean
对于描述的场景(工具类 A 没有方法需要返回 Bean 实例),使用@Component是最佳选择。这种方案简洁、直观且符合 Spring 的设计哲学。只有在遇到特殊需求时,才需要考虑使用的组合方案。选择合适的注册方式有助于保持代码的清晰度和可维护性,是 Spring 开发中的重要实践。
2025-11-23 02:45:03
6
原创 Spring Boot 测试注解全解:从单元测试到集成测试
Spring Boot 的测试注解提供了完整的测试解决方案,从简单的单元测试到复杂的集成测试都能覆盖。快速反馈:优先使用切片测试(全面验证:重要流程使用集成测试(隔离测试:使用@MockBean和@SpyBean控制依赖数据管理:利用和@Sql管理测试数据通过合理运用这些注解,可以构建出既可靠又高效的测试套件,确保代码质量的同时提高开发效率。附:常用依赖配置。
2025-11-23 02:42:26
109
1
原创 Spring Boot 中的 Bean 与自动装配详解
/ 1. 使用注解方式定义Bean@Component// 类实现@Service// 服务层组件// 数据访问层组件// 2. 使用@Bean方法定义(用于配置类中)@BeanSpring Boot 中的 Bean 和自动装配机制是框架的核心特性,它们大大简化了企业级应用的开发复杂度。通过理解 Bean 的生命周期、作用域以及自动装配的工作原理,开发者可以编写出更加健壮、可维护的 Spring Boot 应用程序。掌握这些概念对于深入使用 Spring Boot 框架至关重要。
2025-11-22 23:28:26
64
原创 Spring Boot 注解全解
Spring 通过组件扫描自动发现和注册 Bean。注解层级用途说明特殊功能@Component通用层通用的组件注解基础组件标记@Service服务层业务逻辑层组件标识业务服务持久层数据访问层组件异常转译为 Spring 统一异常控制层Web 控制层配合视图解析器使用控制层专为 RESTful API设计@Service// 业务逻辑实现// 数据访问实现,自动进行异常转译// RESTful API 实现选择合适的注解。
2025-11-22 23:24:24
769
2
原创 Redisson 基础教程
Redisson 是一个在 Redis 基础上实现的 Java 驻内存数据网格(In-Memory Data Grid),不仅提供了 Redis 基础数据结构的操作,还封装了许多分布式常用功能,如分布式锁、集合、限流器、队列等。提供更直观的、面向对象的 API支持 Redis 单机、哨兵、集群等部署模式提供丰富的分布式 Java 对象和服务与 Java 标准库 API 高度兼容本教程详细介绍了 Redisson 的基础使用方法,包括环境配置、各种数据结构的操作示例以及最佳实践。
2025-11-21 16:03:00
165
原创 Java Lambda 表达式与 JavaScript 箭头函数对比
主要用于实现函数式接口,强调类型安全,this指向外部类实例JavaScript 箭头函数是完整的函数定义方式,具有词法作用域的this绑定两者语法相似但本质不同:Java 是接口实现,JavaScript 是函数定义选择使用时需考虑语言特性和具体场景需求。
2025-11-21 15:57:39
19
原创 Java泛型详解:尖括号<>、通配符?与类型参数T
语法基础:尖括号<>是泛型的语法标志。定义泛型:当需要定义一个可重用的泛型类、接口或方法时,使用类型参数T(或EKV。它提供了类型安全和一致性。使用泛型:当需要使用泛型结构,且方法的逻辑不依赖于具体类型时,使用通配符?(尤其是上界extends T>和下界super T>),这能极大提高API的灵活性。记住PECS原则。避免使用原始类型:不要使用没有类型参数的泛型类(如List list),这会失去类型安全优势。# Java泛型详解:尖括号<>、通配符?与类型参数T。
2025-11-21 00:39:51
118
原创 哈希表、红黑树、初始容量与负载因子详解
初始容量指哈希表创建时底层数组的初始大小。在HashMap中,默认初始容量为16:java// HashMap中的默认初始容量定义// 16负载因子是哈希表在其容量自动扩容前可以达到多满程度的度量:负载因子 = 元素数量 / 哈希表容量扩容阈值 = 当前容量 × 负载因子哈希表通过哈希函数实现快速数据访问,红黑树通过自平衡特性保证最坏情况下的性能,初始容量和负载因子共同决定了哈希表的空间效率和性能表现。理解这些核心概念对于编写高性能的Java应用程序至关重要。
2025-11-20 23:50:40
16
原创 Spring Boot 整合 Redisson 极易上手的入门教程
Redisson 是一个基于 Redis 的 Java 驻内存数据网格(In-Memory Data Grid),提供了丰富的分布式 Java 对象和服务。相比传统的 Redis Java 客户端,Redisson 提供了更高级的抽象和分布式数据结构,让开发者能够更轻松地构建分布式系统。
2025-11-20 00:08:17
1089
原创 HttpServletResponse 详细指南
HttpServletResponse 是 Java Servlet API 中用于构建 HTTP 响应的核心接口。当服务器接收到 HTTP 请求时,Servlet 容器会创建 HttpServletRequest 和 HttpServletResponse 对象,后者专门负责封装并发送响应回客户端。
2025-11-16 23:02:49
985
原创 Spring ResponseEntity 全面详解
是 Spring Framework 4.0 引入的核心注解,专门用于构建 RESTful Web 服务。它是一个组合注解,结合了和的功能。//这行代码定义了一个新的注解类型,名为 RestController。// @interface关键字是 Java 中用于声明注解的特殊语法。//其余以 @开头的代码(如 @Target, @Retention等)被称为元注解,// 它们被应用于另一个注解之上,用于定义该注解的基本行为规则。: 这表示 @RestController注解有一个。
2025-11-16 15:54:33
849
原创 Java静态工厂方法详解
有意义的命名使代码更易理解封装创建逻辑降低客户端复杂度灵活的实例控制支持缓存、池化等优化返回类型灵活性可以隐藏具体实现类虽然它有类无法继承、文档中不够显眼等缺点,但在大多数需要控制对象创建过程的场景下,其优势都非常明显。它是实现"面向接口编程"的重要工具,在Java标准库和现代框架中得到了广泛应用。适用场景推荐当对象的创建逻辑比较复杂时需要控制实例数量(如单例、对象池)需要根据参数返回不同的实现类时希望提高API的可用性和可读性时。
2025-11-16 15:04:28
891
原创 HttpServletResponse 与 ResponseEntity 详解
是基础,提供了对 HTTP 响应最原始、最底层的控制能力。是在此基础上为了提升开发效率、代码可读性以及类型安全而创造的“语法糖”和最佳实践封装,特别适用于 RESTful API。在现代 Spring 应用开发中,对于 Web API,应优先考虑使用 ResponseEntity;只有在遇到需要精细控制输出流的特殊场景时,才直接使用。了解国内流行的自定义统一响应体方案及其背后的权衡,有助于在不同项目背景下做出更合适的技术选择。
2025-11-16 14:27:06
849
原创 Spring Boot 日志系统全面详解
Spring Boot 提供了强大而灵活的日志系统,通过合理的配置可以满足从开发到生产各种环境的需求。选择合适的配置方式:简单需求用application.properties,复杂需求用logback-spring.xml合理的日志级别策略:不同环境设置不同级别完善的滚动策略:避免日志文件过大影响性能异步日志提升性能:对性能要求高的场景使用异步日志统一的日志格式:便于日志收集和分析通过以上配置和实践,可以构建出既满足功能需求又具备良好性能的日志系统。
2025-11-16 01:16:33
750
原创 MySQL 并发控制机制详解:锁机制、MVCC 与 Read View
MySQL 的并发控制通过锁机制和 MVCC 共同实现,两者协同工作保证了数据的一致性和高并发性能。锁机制:主要处理写-写冲突,通过表锁、行锁、间隙锁等实现不同粒度的并发控制,解决脏写、更新丢失等问题。MVCC:主要处理读-写冲突,通过多版本控制和 Read View 实现非阻塞读,提高并发性能。协同工作:在可重复读隔离级别下,MVCC 实现快照读的可重复性,间隙锁/临键锁防止幻读;当前读操作仍使用行锁保证数据一致性。实践建议合理设计索引,确保行锁有效工作,避免退化为表锁。
2025-11-15 15:46:03
753
原创 数据库事务ACID特性详解
原子性要求事务中的所有操作作为一个不可分割的单元,要么全部成功完成,要么全部不执行,不可能停滞在中间某个环节。如果事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。一致性确保事务将数据库从一个一致的状态转换到另一个一致的状态,在事务开始之前和结束后,数据库的完整性约束没有被破坏。隔离性要求并发执行的事务之间相互隔离,一个事务的执行不应影响其他事务。事务查看数据时,要么看到的是另一并发事务修改它之前的状态,要么是修改之后的状态,不会查看中间状态的数据。
2025-11-15 15:26:43
732
原创 Spring 注解详解:@Service 与 @Transactional
职责分离@Service负责组件识别,负责事务管理精准控制:推荐在方法级别使用,实现更精细的事务控制避免陷阱:注意内部方法调用导致的事务失效问题合理配置:根据业务需求设置合适的回滚规则和传播行为通过遵循这些最佳实践,您可以构建出更加健壮、可维护的 Spring 应用程序。
2025-11-15 01:52:31
825
原创 MySQL 配置文件属性详解
MySQL 的配置是一个需要根据实际硬件资源、业务负载和安全性要求进行持续调优的过程。正确的字符集设置(推荐使用utf8mb4)是保障数据正确存储和显示的基础。理解核心参数(如)的作用,并遵循规范的配置流程,是确保数据库高效稳定运行的关键。
2025-11-14 19:44:25
806
原创 HTMLElement 与MouseEvent 事件对象属性详解
当使用监听mousemove事件时,回调函数接收的事件对象e是一个MouseEvent实例,包含了丰富的鼠标事件信息。这些属性对于实现精确的交互功能至关重要。
2025-11-14 14:38:39
468
原创 Pinia Store 生命周期与状态持久性详解
Store 是单例:组件卸载不影响 Store 实例和其状态的存续。状态是持久的:Store 内的数据会一直保持,除非页面刷新、手动调用$reset()或$dispose()。只关乎监听器:它让状态订阅函数脱离组件的生命周期,与 Store 数据本身无关。内存管理:虽然 Store 状态会持久化,但长时间不用的 Store 可能会占用内存,在大型应用中需要考虑适时清理。
2025-11-13 21:08:54
553
原创 CSS 选择器空格使用区别详解
示例 2: 后代选择器 (有空格)常见混淆场景解析情景 1: 按钮状态管理情景 2: 导航菜单激活状态记忆技巧与最佳实践无空格 = 且关系: 表示"同时具有classA和classB"有空格 = 包含关系: 表示"classA内部的classB"特异性计算: 的特异性高于 维护性建议:使用多类选择器时,考虑使用BEM命名法减少复杂度相关选择器扩展选择器语法描述子选择器仅选择直接子元素(一层嵌套)相邻兄弟选择器选择紧接在后面的相邻兄弟元素
2025-11-13 12:03:56
953
原创 CSS 动画与变换属性详解
transform属性允许您对元素进行 2D 或 3D 变换,包括旋转、缩放、移动(平移)和倾斜等操作。该属性不会改变文档布局,只影响元素的视觉呈现。
2025-11-12 23:24:17
322
原创 CSS中transition属性详解
transition是 CSS3 提供的简写属性,用于在元素样式属性发生变化时,自动添加平滑的过渡动画效果,而不是瞬间改变。
2025-11-11 22:29:08
459
原创 addEventListener() 事件类型与应用场景
当使用 事件监听时,会出现以下触发序列:鼠标从父元素移入第一个子元素鼠标从第一个子元素移出,但仍处于父元素内若要只针对某一目标,可使用不冒泡事件,如 mouseenter/mouseleave优势:实际应用建议对于需要检测鼠标是否在整体区域内的场景,强烈推荐使用 /等不冒泡事件对,因为:
2025-11-11 21:45:06
598
原创 从零开始搭建 Vue 3 + Vite 项目:一份极速上手指南
通过 Vite 搭建 Vue 3 项目是一个非常简洁高效的过程。Vite 提供了超快的开发服务器启动和模块热更新,而 Vue 3 则带来了更现代、更灵活的代码组织方式。这套组合为前端开发带来了极佳的体验。希望这篇指南能帮助你顺利开启 Vue 3 开发之旅!如有任何问题,欢迎随时查阅Vite 官方文档和Vue 3 官方文档。
2025-11-10 01:54:37
1633
原创 box-shadow详解
这个阴影声明创建了极细微的描边式光晕零偏移保持对称极小模糊维持锐利边缘适当扩展形成可见轮廓低透明度黑色确保柔和度是提升UI精致度的实用技巧,特别适合需要微妙视觉提示的场景。
2025-10-29 01:38:50
423
原创 CSS ::before 和 ::after 伪元素详解
css保持 HTML 整洁:使用伪元素避免添加不必要的 DOM 元素灵活的内容设置content可以接受字符串、属性值、计数器等响应式设计:伪元素样式可以随媒体查询变化可访问性考虑:确保伪元素内容不会影响屏幕阅读器体验伪元素是 CSS 中强大的工具,合理使用可以大大增强页面的视觉效果和交互体验,同时保持代码的简洁性和可维护性。
2025-10-26 19:25:20
353
原创 ECMAScript Modules (ESM) 详解
ECMAScript Modules(ESM)是 JavaScript 的官方模块系统,于 ECMAScript 2015 (ES6) 中正式引入。它提供了一种标准化、语言层面的模块化方案,用于替代之前的社区方案(如 CommonJS、AMD 等)。ESM 设计为静态结构,模块的依赖关系在编译时就能确定,这使得工具可以进行更好的优化和静态分析。
2025-10-26 01:50:13
533
原创 mysql.zip压缩包安装(9.4.0版本为例)
可深入学习,my.ini是 MySQL 在 Windows 系统上的主要配置文件,它非常重要且不仅在初始化时使用。mysql:指定用户的主要组为 “mysql” 组 -s /bin/false:设置用户的登录 shell 为。useradd:创建新用户命令 -r:创建系统用户(UID 在一定范围内,通常用于服务账户) -g。–user=mysql:可选,指定运行 MySQL 服务的系统用户(在 Linux 中常用)
2025-10-18 03:09:28
950
原创 Ubuntu22.04版本左右,扩充用户可使用内存
若要对 /home 进行内存的扩容,则将 /home 文件夹名修改为其他名称作为备份(怎么做随你喜欢),将 /newHome 文件夹名修改为 /home 则完成整个扩容过程。查看所有磁盘和分区,找到想要替换用户可使用文件夹内存的磁盘和分区。若没有进行分区,并转为所需要的分区数据类型,先进行分区与格式化,过程自行查阅。3 创建想要挂载的文件夹,例如,想要替换 /home 文件夹的存储内存,先在同级目录下使用命令。进入 /home 文件夹,输入命令。进行自动挂载的修改,输入新的信息。
2024-10-28 19:46:26
966
原创 yolov8-ultralytics-利用TP、TN、FP、FN添加mIoU指标
【代码】yolov8-ultralytics-利用TP、TN、FP、FN添加mIoU指标。
2024-10-21 23:42:23
2227
34
原创 Ubuntu22.04版本左右,开机自动启动脚本
输入 vi /etc/rc.local 新建文件,在文件中输入想要自动执行的命令。注:第一行加上注释 #!/bin/bash 选择bash解释器。添加完成后按exc退出插入模式,按 : 输入wq 保存并退出。表示成功创建连接,至此开机自动运行脚本设置成功。与步骤1一样保存并退出。
2024-09-05 20:04:30
2858
1
原创 YOLOV1学习笔记
在计算机视觉以及数字图像处理中方向梯度直方图是一种能对物体进行检测的基于形状边缘特征的描述算子(用于量化图像局部特征的算法工具,它将图像中的关键点,例如角点、边缘点或尺度不变特征点,周围的像素信息转化为固定长度的数值向量,这些向量可以代表关键点的局部纹理、形状和光照不变性等特征。描述算子的主要目的是为了能够在不同的条件下,比如图像旋转、缩放、亮度变化等,仍然能够可靠地匹配同一物体或场景的不同视图中的相同或相似特征点。
2024-04-24 21:38:11
1140
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅