- 博客(15)
- 收藏
- 关注
原创 学习:《The QUIC Transport Protocol: Design and Internet-Scale Deployment》
QUIC协议是基于UDP的新型传输协议,旨在解决TCP协议在互联网环境中的固有缺陷。
2025-12-02 20:46:18
838
原创 对于SpringBoot的三层缓存的思考
Spring Boot通过三级缓存机制解决单例Bean之间通过属性注入(字段或Setter)产生的循环依赖问题。该机制的核心在于在Bean生命周期中提前暴露引用,允许未完全初始化的Bean被依赖注入。构造函数注入无法被解决,因其注入时机过早;混合注入能否解决取决于Bean创建顺序。三级缓存(DefaultSingletonBeanRegistry)包含一级缓存(完整Bean)、二级缓存(早期引用)和三级缓存(ObjectFactory),通过分阶段处理在遵循Bean生命周期语义的同时突破循环依赖限制。
2025-10-08 20:10:14
1069
原创 自己动手实现Redis分布式锁
本文介绍了基于SpringBoot封装的Redis分布式锁工具类实现。首先分析了分布式锁的必要性,指出传统本地锁在分布式环境中的局限性。随后详细讲解了Redis核心命令(SET NX EX/PX、DEL、GET、EXISTS)和Lua脚本在实现原子性操作中的作用,以及RedisTemplate的配置方法。最后展示了工具类的核心实现,包括加锁Lua脚本,该脚本通过原子操作实现锁状态判断、加锁和重入计数功能,确保分布式环境下的线程安全。该工具类简化了分布式锁的使用,提高了开发效率,同时降低了出错风险。
2025-09-10 14:43:13
1040
原创 (学习笔记)SpringBoot基础(四)Spring Boot 的 AOP 支持
摘要: Spring Boot通过spring-boot-starter-aop简化了AOP(面向切面编程)的整合,自动引入依赖并隐式开启代理支持,无需手动配置。AOP用于解耦横切关注点(如日志、事务),通过动态代理将通用逻辑织入业务方法。核心概念包括切面(Aspect)、切入点(Pointcut)、通知(Advice)等,支持5种通知类型(如前置、环绕)。相比传统Spring需手动配置依赖和注解,Spring Boot实现了零配置,默认使用CGLIB代理,开发者只需定义切面类即可快速实现功能增强。
2025-08-29 19:02:31
1083
原创 (学习笔记)SpringBoot基础(二)自动装配
Spring Framework通过手动装配(XML配置、注解驱动、Java配置类)和模块装配(@Import、@EnableXXX)实现组件管理,底层支持条件装配(@Conditional)实现按需加载。Spring Boot在此基础结合模块装配、条件装配和SPI机制,实现自动装配能力,简化组件配置流程。
2025-08-27 22:17:14
629
原创 (学习笔记)SpringBoot基础(一)概述
Spring Boot是Spring Framework的"场景化封装与增强",基于IOC和AOP核心思想,通过"约定大于配置"的理念简化开发流程。
2025-08-27 16:17:20
733
原创 数据库特性及实现原理(学习笔记)
摘要: 数据库事务的四大特性(ACID)通过不同机制实现:原子性由Undo Log记录反向操作实现回滚;一致性是目标,由其他三个特性共同保障;隔离性通过锁或MVCC解决并发问题;持久性依赖Redo Log的预写机制确保数据不丢失。InnoDB中,Redo Log采用循环写入和异步刷盘策略平衡性能与可靠性,崩溃后通过重放Redo Log恢复数据,再借助Undo Log回滚未提交事务。隔离级别通过不同锁策略或MVCC解决脏读、不可重复读和幻读问题,其中快照读(MVCC)实现无锁的一致性读。
2025-08-21 20:51:13
1213
原创 Netty源码阅读:(四)ChannelPipeline解析
摘要: Netty的ChannelPipeline是事件处理的责任链机制核心组件,通过DefaultChannelPipeline实现。Pipeline采用双向链表结构管理处理器(Handler),由头尾哨兵节点(Head/Tail)界定处理边界。AbstractChannelHandlerContext作为链表节点,包含处理器状态和执行控制逻辑,而DefaultChannelHandlerContext则持有具体ChannelHandler实例。
2025-07-09 22:13:41
1458
原创 Netty源码阅读:(三)Unsafe解析
Netty Unsafe机制解析 Unsafe是Netty内部处理底层I/O操作的核心组件,作为Channel的内部接口,它通过严格的访问控制确保线程安全。
2025-07-08 20:05:25
748
原创 Netty源码阅读:(二)Reactor线程模型
Reactor线程模型是Netty高性能的核心机制,其核心实现围绕NioEventLoopGroup展开。
2025-07-04 19:29:41
761
原创 NIO核心原理与高效实践
本质:同步工具Selector 的实现(如 sun.nio.ch.EPollSelectorImpl)仅封装了操作系统提供的多路复用 API。它的工作完全依赖于外部线程调用其方法(如 select()、wakeup())。同步行为:当线程调用 select() 时,可能会阻塞(直到有就绪事件、超时或被唤醒)。其他线程可以通过 wakeup() 强制唤醒阻塞的 select() 调用。
2025-06-20 10:21:52
766
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅