摘要: undo log:提供数据的历史版本,形成版本链 ReadView:定义了一个事务能看到哪些版本数据的规则 可重复读:通过在整个事务期间复用同一个ReadView实现 快照读:通过ReadView + undo log版本链,不需要加锁就能实现一致性读取 这种机制使得: 读操作不阻塞写操作 写操作不 阅读全文
posted @ 2026-01-14 00:27 人在代码在 阅读(2) 评论(0) 推荐(0)
摘要: MySQL InnoDB的可重复读是多种实现的混合体: 对于纯读操作:使用MVCC一致性快照读。 对于写操作:使用当前读 + 行锁。 对于范围操作:额外添加间隙锁防止幻读。 特殊情况:有自己的优化和权衡。 纯读操作MVCC: -- 普通SELECT使用一致性非锁定读(快照读)START TRANSA 阅读全文
posted @ 2026-01-14 00:11 人在代码在 阅读(7) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2026-01-12 21:35 人在代码在 阅读(9) 评论(0) 推荐(0)
摘要: Spring的IOC(控制反转)是将对象的创建、依赖注入和生命周期管理交给Spring容器来统一控制的设计思想。 简单说就是:对象的控制权从程序员转移给Spring框架,实现解耦。 **DI(依赖注入)是IOC的具体实现方式,通过容器自动将被依赖的对象注入到需要它的对象中,无需手动创建或查找依赖。* 阅读全文
posted @ 2026-01-12 21:33 人在代码在 阅读(2) 评论(0) 推荐(0)
摘要: 加密输入 加密密钥 加密算法 改成密文 密钥放在启动参数里 阅读全文
posted @ 2026-01-12 21:32 人在代码在 阅读(5) 评论(0) 推荐(0)
摘要: @resource从spring容器中查找 IOC对象的时候,默认先按照名称去查找,如果名称不存在再按类型去查找。 如果名称和类型不同,比如: @resource priviate huihui huihuison; huihuison这个类也存在的话,那么就会返回huihuison,这样返回的hu 阅读全文
posted @ 2026-01-12 16:07 人在代码在 阅读(2) 评论(0) 推荐(0)
摘要: 我来详细拆解一下Redis黑名单机制的每一步,并用更具体的例子和图解说明。 ## 🎯 核心思想:用一个“本子”记下作废的令牌 你可以把Redis想象成一个**专门记录作废令牌的“小黑本”**。JWT验证时不仅要看令牌本身是否有效,还要查一下这个“小黑本”上有没有它。 ## 🔧 完整实现流程 ## 阅读全文
posted @ 2026-01-12 01:47 人在代码在 阅读(14) 评论(0) 推荐(0)
摘要: @compoent注解是类上的注解,@bean是方法上的注解,需要加@configuration注解,如果不加就不能反回单例的实例,每次返回都是创建新的实例。方法拦截没有cglib代理。 @bean比@compoent注解更灵活,它可以按需求返回代理对象。 @compoent是@service,@c 阅读全文
posted @ 2026-01-11 15:41 人在代码在 阅读(9) 评论(0) 推荐(0)
摘要: 这里的这里的代码Propagation.REQUIRED如果 throw new InsufficientBalanceException("余额不足");整体都会回滚。 如果是Propagation.REQUIRES,则只会回滚新事务里面的语句。 @Servicepublic class Bank 阅读全文
posted @ 2026-01-11 05:02 人在代码在 阅读(3) 评论(0) 推荐(0)
摘要: 主事务可以改成注册会员,嵌套事务为发送短信。 如果不进行try catch 则nested失效,事务会整体回滚。try catch之后会进行保存点机制,只回滚嵌套事务里面的语句。 # 嵌套事务(NESTED)详细示例 嵌套事务是 Spring 事务传播机制中比较特殊的一种,它使用**保存点(Save 阅读全文
posted @ 2026-01-11 05:00 人在代码在 阅读(2) 评论(0) 推荐(0)