- 博客(7)
- 收藏
- 关注
原创 分布式常见解决方案
实现逻辑:1.加锁 setnx1)为了避免死锁问题,setnx完之后需要expire设置TTL失效时间2)为了避免TTL失效的时候业务还未完成导致多个应用抢到锁,可以使用守护线程不断地延长TTL;3) 复合命令实现加锁。2. 解锁del1) 使用lua脚本实现原子性操作:在del之前判断是否是持有锁的线程,需要存在唯一标识。
2024-07-14 16:53:45
901
原创 Spring源码之Bean生命周期
一、Bean的生命周期生命周期:Bean对象的创建、使用和销毁过程;1. 实例化创建对象 createBeanInstance ()在堆空间中申请空间,此时对象的属性值一般是默认值反射创建对象的过程:createBeanInstance -> 获取clazz对象 -> 获取构造器 -> 实例化创建对象ctor.newInstance(argsWithDefaultValues);2. 属性赋值自定义属性 赋值 populateBean()populateBea
2024-07-06 16:22:46
366
原创 JDK动态代理 VS Cglib动态代理
含义:动态代理时一种在运行时动态生成代理对象的技术,它属于设计模式的一种。目的在于在不修改对象的情况下,通过代理对象来间接访问对象,实现对对象添加额外功能。
2024-06-23 18:48:02
362
原创 静态代理具体实现及与装饰模式的区别
静态代理时一种编译时就已经确定代理与被代理对象的代理方式。实现访问代理类时,代理类会对被代理类进行一些功能增强、日志记录等。
2024-06-23 09:16:40
210
原创 Netty学习笔记
Channel管道,其是对 Socket 的封装,其包含了一组 API,大大简化了直接与 Socket 进行操作的复杂性。EventLoopGroup 是一个 EventLoop 池,包含很多的 EventLoop。Netty 为每个 Channel 分配了一个 EventLoop,用于处理用户连接请求、对用户请求的处理等所有事件。EventLoop 本身只是一个线程驱动,在其生命周期内只会绑定一个线程,让该线程处理一个 Channel 的所有 IO 事件。
2024-06-22 15:49:14
495
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人