old wang
搜索文章
首页
= 768 && isOpen) { isOpen = false; setTimeout(() => enableScroll(document.body), 200); }" >
enableScroll(document.body), 200);" x-transition:enter="transition ease duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease duration-300" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style=" position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; overscroll-behavior: none; " >
enableScroll(document.body), 200)" >
首页
全部
默认分类 (4)
技术方案记录 (15)
项目记录 (2)
知识库项目记录 (1)
踩坑记录 (3)
Redis 大 Key 与多 Key 拆分方案
在 Redis 使用过程中,大 Key 或 Key 数量过多的问题。 常见场景包括: 单个 String 类型 Key 的 Value 很大; Hash、Set、ZSet、List 中存储了过多元素; Redis 集群中存储了上亿个 Key; Bitmap 或 BloomFilter 占用空间过大。
作者:old wang
发布时间:2026-05-23
分类:
技术方案记录
Spring Boot 菜单无限层级设计
parent_id、路径枚举与闭包表怎么选 后台系统里,菜单、部门、分类、权限资源都绕不开树形结构。很多系统一开始都会用 parent_id,因为它简单、直观、好维护。但一旦线上出现递归栈溢出、循环引用、查询变慢,就容易得出一个过度结论parent_id 不行,必须换闭包表。 这个结论并不准确。 树
作者:old wang
发布时间:2025-05-22
分类:
技术方案记录
知识库文档入库任务系统设计
文档入库不是上传完文件就结束,后面还有解析、分块、Embedding、向量写入、状态更新这些步骤。这里面解析可能失败,Embedding 可能超时,向量库可能写入失败,用户也可能在任务执行中删除文档或取消任务。所以我不会把它做成一个同步接口,而是设计成 上传接口 + 任务状态机 + MQ 异步消费
作者:old wang
发布时间:2025-03-22
分类:
技术方案记录
Spring Boot 中使用策略模式优化多分支业务逻辑
在业务系统中,经常会遇到这样一种场景: 同一个接口入口,根据请求中的某个字段,走不同的业务处理逻辑。 比如: 第三方 OA 系统回调; 支付渠道回调; 消息通知分发; 文件类型处理; 不同业务类型的审批流程; 不同来源的数据同步逻辑。 最直接的写法,可能是在一个方法里写大量 if...else if
作者:old wang
发布时间:2025-02-22
分类:
技术方案记录
Excel 数据导入时做数据校验
在后台管理系统中,Excel 导入是一个很常见的功能。 典型需求一般包括: 下载 Excel 导入模板; 用户填写数据后上传; 后端解析 Excel; 对每一行数据进行校验; 校验通过的数据进入成功列表; 校验失败的数据进入失败列表; 前端展示失败原因,支持用户修正后重新导入。 这类需求看起来不复杂
作者:old wang
发布时间:2024-05-23
分类:
技术方案记录
基于 Spring Cache 切换 Caffeine 与 Redis 并支持多租户
在 Spring Boot 项目中,缓存是很常见的能力。 最直接的写法是业务代码中注入 RedisTemplate,然后手动操作缓存。 例如: redisTemplate.opsForValue().get(key); redisTemplate.opsForValue().set(key, val
作者:old wang
发布时间:2024-03-23
分类:
技术方案记录
接口幂等性与分布式限流
在分布式系统中,有两个问题经常会遇到: 接口重复提交; 高并发流量冲击。 前者对应的是接口幂等性问题,后者对应的是接口限流问题。 这两个问题看起来不一样,但本质上都和“如何控制请求行为”有关: 幂等性关注的是:同一个业务操作重复执行时,结果不能出错; 限流关注的是:单位时间内请求量过大时,系统不能被
作者:old wang
发布时间:2023-04-22
分类:
技术方案记录
Spring Boot 中统一日志输出
无论是开发调试,还是生产环境排查问题,日志通常都是最直接的线索。 常见用途包括: 记录接口请求; 记录业务关键流程; 记录异常堆栈; 排查线上问题; 分析系统运行状态; 辅助定位性能问题。 在项目早期,很多人可能会直接使用: System.out.println("debug message");
作者:old wang
发布时间:2022-06-01
分类:
技术方案记录
Spring Boot + MyBatis 实现数据库字段级加密
在业务系统中,数据库里经常会存储一些敏感信息,例如: 手机号; 邮箱; 身份证号; 银行卡号; 用户地址; 其他个人隐私数据。 如果这些数据直接以明文形式存储在数据库中,一旦数据库泄露,影响会非常严重。 比较理想的做法是: 数据入库前自动加密,查询出来后自动解密。 业务代码仍然像操作普通字段一样使用
作者:old wang
发布时间:2022-04-10
分类:
技术方案记录
Spring Boot 使用注解、反射和 AOP 实现数据加密脱敏
在业务系统中,用户敏感信息不能直接明文存储,也不应该直接明文展示。 常见的敏感字段包括: 姓名; 手机号; 身份证号; 地址; 邮箱; 银行卡号。 从数据安全角度看,通常需要做到两件事: 存储时加密:敏感数据进入数据库前进行加密; 展示时脱敏:敏感数据返回给前端前进行解密和脱敏展示。 如果每个接口都
作者:old wang
发布时间:2022-04-09
分类:
技术方案记录
共 15 篇文章
1
2
页