自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 收藏
  • 关注

原创 Redis 分布式锁

Redis分布式锁实用指南:通过SET key value NX PX实现原子加锁,配合UUID标识和Lua脚本确保安全解锁。关键点包括:设置合理过期时间防死锁、主从切换风险应对、可重入方案选择。推荐生产环境直接使用Redisson(支持自动续期和可重入),避免自实现风险。注意强一致性场景需选用Zookeeper等方案。核心公式:Redis锁=SETNX+唯一ID+Lua解锁+超时控制。

2026-04-03 14:13:42 263

原创 Redis和数据库锁两种方案

本文介绍了Java Spring项目中防重处理的多种实现方案:1. Redis方案包含Token验证、分布式锁和Redisson实现;2.数据库方案包括唯一索引、悲观锁和乐观锁;3.还提供了基于Spring AOP的注解式防重实现。文章对比了不同方案的适用场景,建议采用分层防护策略,并给出了最佳实践建议:合理设置过期时间、实现优雅降级、建立监控机制等。最后强调应根据具体业务需求选择合适方案,高频交易推荐Redis分布式锁,数据一致性要求高的场景必须使用数据库唯一索引。

2026-04-03 08:47:46 228

原创 @Idempotent + Redis防重复提交(接口幂等)

本文介绍了一种基于Redis的接口幂等实现方案,通过@Idempotent注解和AOP拦截实现防重复提交。核心方案使用Redis的SETNX原子操作确保同一请求在指定时间内只能执行一次,并详细阐述了注解定义、Redis工具类实现、AOP拦截逻辑以及业务集成方法。文章对比了多种幂等方案优劣,提供了前端配合方案和常见问题解答,最后建议了企业级增强方向。该方案适用于金融、支付、下单等需要防止重复提交的业务场景,具有高性能和分布式友好特点。

2026-04-01 12:35:28 203

原创 @LogRecord + AOP 如何优雅地记录「入参 / 出参 / 异常」

本文提出了一种基于@LogRecord注解和AOP切面的企业级日志记录方案。通过自定义注解标记方法,由环绕通知统一处理入参、出参和异常,实现结构化日志输出。方案支持参数脱敏、TraceId透传等功能,具有注解驱动、业务无侵入、按需记录等优点。核心实现包括定义@LogRecord注解、编写AOP切面类、参数过滤处理等步骤,最终生成JSON格式的结构化日志,便于对接ELK等日志系统。相比传统日志方式,该方案更优雅、可控且易于扩展。

2026-03-31 14:27:56 191

原创 为什么要使用幂等防重复提交,它的逻辑是什么对比其他的来说有什么优势

摘要:幂等和防重复提交是构建高可靠系统的核心机制,主要解决网络重发、用户误操作导致的重复请求问题。其核心原理是使用Redis的SETNX原子操作实现分布式锁,通过唯一标识拦截重复请求。相比数据库唯一索引、Session防重等方案,Redis幂等具有高性能、分布式友好、灵活定制等优势,特别适用于支付、订单、优惠券发放等绝对不能重复的业务场景。该方案在入口层拦截重复请求,保护业务数据正确性,是高并发互联网业务的标配防护手段。

2026-03-31 14:27:28 69

原创 AOP实现日志如何实现

本文系统讲解了Spring AOP实现日志的标准企业级实践。主要内容包括:1)日志切面应记录方法名、入参、返回值、耗时和异常信息;2)推荐使用@Around实现完整日志功能,可统计耗时并统一处理异常;3)详细说明了切点表达式语法和自定义日志注解的进阶用法;4)指出同类方法互调、final/private方法等常见陷阱;5)强调AOP日志的本质是通过切点定位方法,用环绕通知解耦日志与业务逻辑。文章提供了完整的代码示例,涵盖基础实现到企业级优化方案。

2026-03-27 11:14:04 197

原创 Spring AOP 简要

SpringAOP是Spring框架中实现面向切面编程的核心功能,用于将日志、事务等横切关注点与业务逻辑解耦。它通过切面(@Aspect)封装通用功能,使用五种通知类型(@Before/@Around等)在方法执行的不同阶段插入增强逻辑。底层采用JDK动态代理(针对接口)或CGLIB(针对类)在运行时创建代理对象。典型应用包括日志记录、事务管理(@Transactional)、权限校验等,具有无侵入、模块化复用的优势。使用时需注意避免自调用、final方法限制等问题。

2026-03-27 10:01:58 462

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除