自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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基础(三)IOC 容器基础

SpringBoot的核心机制基于Spring IOC容器的自动管理能力。

2025-08-28 22:24:29 734

原创 (学习笔记)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

原创 Netty源码阅读:(一)服务端启动流程

Netty服务端启动流程源码分析

2025-07-02 13:24:06 729

原创 Netty的一些简单常见问题

粘包和半包是TCP协议通信中常见的问题,本质上是由于TCP的流式传输特性导致的应用层数据边界不清晰问题。

2025-06-28 12:48:07 1567

原创 Netty入门与核心组件解析

Netty是一个高性能异步网络应用框架,广泛应用于分布式系统中。本文介绍了Netty的核心组件和使用方法。

2025-06-23 20:00:53 1605

原创 NIO核心原理与高效实践

本质:同步工具Selector 的实现(如 sun.nio.ch.EPollSelectorImpl)仅封装了操作系统提供的多路复用 API。它的工作完全依赖于外部线程调用其方法(如 select()、wakeup())。同步行为:当线程调用 select() 时,可能会阻塞(直到有就绪事件、超时或被唤醒)。其他线程可以通过 wakeup() 强制唤醒阻塞的 select() 调用。

2025-06-20 10:21:52 766

空空如也

空空如也

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

TA关注的人

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