- 博客(16)
- 收藏
- 关注
原创 复杂资源历史版本与操作记录的架构设计与实践
Data// 主表数据// 关联从表数据@Getter“JSON 快照 + 异步事件驱动” 架构在处理复杂聚合关系的历史记录场景中,展现了极佳的灵活性和扩展性。适用场景:读写双高的复杂业务实体、版本记录频率适中(日常千条级)、无需通过 SQL 直接关联查询历史子表数据。不适用场景:记录粒度要求极细的流水账系统(如金融账本每一笔金额的极高频变动),此类场景通常更适合直接使用类似 Binlog 解析机制或专业的审计日志框架(如 Hibernate Envers)。
2026-04-17 14:25:32
388
原创 OptaPlanner 智能排课系统实战指南
约束求解(Constraint Solving)是一种用于解决组合优化问题的技术。与传统的算法不同,约束求解器通过声明式的方式定义问题和约束,然后由求解器自动搜索满足所有约束的最优解。│ 问题建模 │ -> │ 约束定义 │ -> │ 求解搜索 │| | |v v v定义实体和变量 定义硬约束和软约束 使用启发式算法定义值范围 定义得分计算方式 寻找最优解声明式编程:用户只需定义"什么是好的解",而非"如何找到好的解"自动优化:求解器内置多种启发式算法,自动搜索最优解灵活扩展。
2026-03-23 17:38:03
362
原创 深度解析:Java POI实现Excel动态下拉框(隐藏工作表+公式引用方案)
POI组件对应Excel对象作用Workbook工作簿代表整个Excel文件(XSSFWorkbook对应XLSX,HSSFWorkbook对应XLS)Sheet工作表代表Excel中的一个SheetRow行代表工作表中的一行Cell单元格代表行中的一个单元格Name名称管理器对应Excel的命名范围数据验证实现下拉框、数据校验等功能数据验证约束定义下拉框的类型、来源等// 隐藏工作表名称(下划线开头,区分业务表)// 业务工作表名称。
2026-01-12 10:36:38
897
原创 《Spring AOP 基于注解+切面实现通用资源同步,告别重复代码》
本文提出了一种基于注解+AOP切面+反射的通用资源同步方案,解决业务数据变更后同步到资源表的重复编码问题。通过定义类级别注解标记资源类型、方法注解标记操作类型、字段注解标记主键和名称,结合切面拦截方法执行,利用反射解析业务对象数据,实现新增/修改/删除操作的统一同步。该方案将同步逻辑抽象为通用组件,只需简单注解即可自动完成同步,大幅减少重复代码和维护成本。核心代码展示了注解定义、枚举类型、DTO结构及切面实现,适用于用户、订单、商品等多种资源同步场景。
2025-12-24 09:41:40
663
原创 OptaPlanner 从理论到实践:解锁 Java 约束优化的奥秘
OptaPlanner是一款开源的约束优化引擎,能够高效解决各类优化问题(如员工排班、物流配送等)。本文介绍了OptaPlanner的核心理论,包括规划实体、规划变量和约束条件三大要素,并通过Java实现了一个简单的员工排班优化案例。文章详细展示了从环境搭建、需求定义到编码实现的全过程,包括定义员工和排班项POJO、编写约束规则以及运行求解器的完整流程。该案例验证了OptaPlanner在满足硬约束(如员工每周值班不超过3次)和优化软约束(如特定员工偏好)方面的有效性,为开发者提供了一套无需深入算法即可解决
2025-12-19 17:05:00
1090
原创 GitFlow 实战指南:从原理到落地的分支管理艺术
GitFlow是一种标准化的分支管理模型,旨在解决团队协作中的代码混乱问题。其核心是将分支分为主分支(main/develop)和支持分支(feature/release/hotfix),通过明确的职责分工实现并行开发、版本发布和紧急修复的有序进行。文章详细介绍了三大核心场景的操作流程:新功能开发通过Feature分支完成,版本发布通过Release分支准备,线上问题通过Hotfix分支快速修复。GitFlow特别适合中大型团队和有固定发布周期的项目,能有效保证代码可追溯性和版本稳定性。最后强调GitFlo
2025-12-09 16:32:33
1120
1
原创 Java 后端拖动排序逻辑与实现
本文介绍了一种高效实现拖动排序的方法,通过精准区间调整来减少数据操作开销。以试卷题目排序为例,当拖动题目位置时,只需修改受影响的区间数据(如题目1拖动到题目3位置时,调整题目2和题目3的排序值)。文中提供了业务代码实现和通用的OrderAdjustUtils工具类,支持向上/向下移动时的批量顺序调整。该方法通过函数式编程减少数据库操作次数,适用于大数据量场景,可与MyBatis-Plus配合使用,也可适配其他框架。
2025-11-28 17:52:21
441
原创 JAVA 使用POI在Excel中添加下拉框
本文将聚焦 Java 中使用 POI 库创建 Excel 静态下拉框,无需复杂配置,提供可直接复用的核心工具类和完整 Demo,即使是 POI 新手也能快速上手
2025-11-21 10:02:46
266
原创 RustFS 单机多盘部署方案
RustFS 启动,我们建议您配置一个专门的无登录权限的用户进行启动 RustFS 的服务。空间管理:远程服务器需定期清理旧备份(如保留最近 30 天数据),可在脚本中添加删除旧文件的命令(例如。通过以上配置,即可实现 RustFS 数据向远程服务器的自动化备份,弥补单机模式的冗余不足。调整备份频率:若需更频繁备份(如每 6 小时),修改 crontab 为:bash。本地服务器(备份源,即 RustFS 所在机器)和远程服务器(:删除远程目录中本地已不存在的文件(保持两地数据一致,可选);
2025-11-14 15:48:57
1316
原创 MySQL集群部署-MRG方案(Docker)
在liunx环境下部署mysql集群(MRG方案),搭配mysql-router负载均衡并在springboot项目集成使用
2025-10-30 11:38:51
1198
原创 Java 使用EasyExcel导出带有图片的表格文档(单张/多张图)
站内有很多基于2.2.7版本的文章,有些可能对使用更高版本不适用,也可能是我比较菜,在使用若依框架时套用对应的例子总是会有各种bug。在查看官方文档之后,发现有更方便的工具可以使用。
2024-10-25 16:46:54
1980
4
原创 MySQL 按照次数去除A结果集中B结果集重复数据
最近做需求的时候遇到一种需要特殊处理的数据。就是同一个项目编号可能会被多次提交再多次驳回,而且会被记录在表中,两种状态值。需求要求:查出来提交且没有被驳回的数据。按照 驳回次数去去掉提交中的数据,即A中去掉B中的1个P3,1个P4 ,应为(p1,p2,p3)而不是(p1,p2)这里使用一种思路来解决(不一定为最优解):增加一列次数统计,然后做减法。将结果集做为子查询 ,过滤出来 两个次数相减为1 的数据。假设state=1是提交 state= 2是驳回。
2023-08-28 11:16:52
194
原创 MySQL数据库,从一个数据库中复制指定表某数据到另一个数据库中
-- insert into 某库.某表(字段) select(字段)from 某库.某表 where(过滤条件)含义为将aom库下bo_approve_record 表 中project_id 为‘PN2000001’的数据复制到。bom库的bo_approve_record 表中。前后字段数量,顺序,格式应保持一致。仅为一种思路,看情况使用。
2023-05-17 10:25:52
298
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅