- 博客(11)
- 收藏
- 关注
原创 优雅重试机制:告别循环重试
本文介绍了如何优雅处理分布式系统中的网络请求失败问题。传统循环重试方案存在连续重试、代码冗余等问题。推荐使用Resilience4j容错库,它提供灵活的重试配置(最大次数、间隔策略、异常控制等),并演示了封装可复用重试工具类的方法。相比硬编码重试逻辑,Resilience4j方案具有更好的可读性、可维护性和扩展性,支持不同服务的差异化重试策略。文章最后强调优雅代码的重要性,建议开发者采用Resilience4j优化重试机制。
2025-11-11 20:25:01
619
原创 Java Agent 全面解析与实践指南
Java Agent 是一种程序钩子技术,可在运行时修改和增强Java程序。文章从核心概念入手,介绍了Agent的四种常见应用场景:线上调试、性能监控、安全防护等。重点通过demo演示了两种实现方式:PreMain模式(随JVM启动)和AgentMain模式(动态注入),详细展示了代码实现、打包流程和运行效果。其中PreMain会在主程序前执行,而AgentMain则利用VirtualMachine类进行运行时动态注入。文章提供了完整的Maven配置和示例代码,帮助开发者快速掌握Java Agent技术的核
2025-09-25 19:47:42
881
原创 从零推导最长回文子串:一步步掌握动态规划
本文详解了使用动态规划求解最长回文子串问题的方法。动态规划通过定义二维数组dp[i][j]表示子串s[i..j]是否为回文串,利用P(i,j)=(S[i]==S[j])&&P(i+1,j-1)的状态转移方程,并采用特殊遍历顺序确保子问题先被计算。文章详细拆解了定义状态、状态转移、初始化、遍历顺序和结果记录等步骤,并提供了完整Java代码实现。该方法时间复杂度为O(n²),空间复杂度为O(n²),是理解动态规划思想的经典案例。
2025-09-02 19:35:23
774
原创 使用 MDC 实现 TraceId 记录调用链
本文介绍了三种实现TraceId记录调用链的方法:1)手动传参,代码繁琐;2)ThreadLocal存储,避免传参但需手动格式化日志;3)MDC方案,基于ThreadLocal封装,与日志框架集成,自动输出上下文信息。MDC通过log4j.xml配置,使用%X{key}占位符自动填充TraceId,无需修改日志语句,是最优雅的解决方案。相比前两种方式,MDC能同时管理多个上下文变量,代码更简洁,维护性更好,是日志处理的推荐实践。
2025-08-28 19:09:22
885
原创 一篇文章教会你 MySQL 窗口函数
本文介绍了MySQL窗口函数在实际项目中的应用,通过一个群聊消息响应分析的需求场景,对比了Java实现和SQL窗口函数实现的差异。文章详细讲解了窗口函数的语法结构,包括PARTITION BY、ORDER BY等关键部分,并分类介绍了常见的聚合函数(RANK、DENSE_RANK、ROW_NUMBER)和分布函数(PERCENT_RANK、CUME_DIST)。通过具体SQL示例和结果展示,帮助读者理解不同窗口函数的使用场景和效果差异。最后强调掌握窗口函数能够编写更优雅高效的SQL语句,提升数据库查询能力。
2025-08-07 20:00:02
433
原创 深入分析 Java 整型包装类的 == 比较:潜在问题与持久化框架的影响
在 Java 中,整型包装类的 == 比较常常引发问题,尤其是在缓存池范围内和使用不同持久化框架时。本文将详细拆解 Integer 类型的不同创建方式、拆箱与装箱的行为,并结合实际开发中的问题,探讨使用 == 和 equals() 的潜在风险。同时,通过实际的代码示例,验证了不同持久化框架和序列化/反序列化过程对比较结果的影响。理解这些细节,有助于避免在开发中出现意外的错误。
2025-07-31 19:30:52
803
原创 拒绝“update”:你该学会写规范的 Git commit message 了
在团队开发中,糟糕的 Git 提交信息会让项目维护变得一团糟。本文带你从实际出发,掌握规范的提交格式(Conventional Commits)、常用类型(如 feat、fix、refactor 等)及写作建议,附带工具推荐与 IDEA 插件图示,助你写出清晰高效的 commit message,让协作更轻松,项目更可持续!
2025-06-26 18:30:00
987
原创 若依框架 @DataScope 注解导致定时任务异常的原因与优雅解决方案
在基于若依框架开发项目时,@DataScope 注解用于实现数据权限控制,但在定时任务或无用户上下文环境下调用带有该注解的方法时,常出现“获取用户信息异常”的错误。本文通过分析源码、复现问题,提供动态控制是否启用数据权限的优雅改造方案,附详细实现代码与思路,供有类似需求的开发者参考。
2025-06-17 09:34:10
1028
原创 LRU (最近最少使用) 缓存
上面就是这道题的解题思路。通过大佬们的提示,我学到了的使用方式,提升了代码的简洁性和性能。看来我还得继续努力,深入学习类的一些方法!💪。
2025-06-09 18:02:14
303
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅