- 博客(30)
- 资源 (3)
- 收藏
- 关注
原创 远程进入JVM执行客户端自定义代码
文章摘要 本文介绍了一种远程调试JVM内存数据的方法,通过修改字节码和自定义类加载器实现。核心思路包括:1)劫持标准输出,将System.out重定向到内存缓存;2)自定义类加载器加载外部字节码文件;3)使用字节码修改工具替换System类引用。具体实现涉及HackSystem输出重定向、HotSwapClassLoader动态加载以及ClassModifier字节码修改等技术。这种方法无需重启服务即可查看或清理JVM内存数据,为解决生产环境调试问题提供了可行方案。
2025-08-24 13:38:57
259
原创 SpringAop源码解析2-代理类的执行逻辑
本文深入解析了Spring AOP代理类的执行过程。代理类通过CGLIB生成,命名格式为"原始类名$$EnhancerBySpringCGLIB$$+16进制hash码"。重点分析了拦截器链的构建和执行流程,包括DynamicAdvisedInterceptor如何保存通知链路拦截器,以及如何通过CglibMethodInvocation的proceed()方法递归执行拦截器链。文章通过具体代码示例展示了Before、AfterReturning、AfterThrowing、Around
2025-08-21 16:47:04
1076
原创 SpringAop源码详解
Spring AOP源码解析摘要: Spring AOP与AspectJ关系: AspectJ提供切面语言和表达式 Spring AOP提供代理创建能力,通过Advisor组合PointCut和Advice 两者协作实现完整AOP功能 代理创建机制: 通过ProxyFactory选择CGLIB或JDK动态代理 代理创建入口根据循环依赖情况不同: 有循环依赖:在getEarlyBeanReference方法中创建 无循环依赖:在初始化后置处理器中创建 关键实现细节: 使用AnnotationAwareAspe
2025-08-20 20:43:12
799
原创 Spring循环依赖源码调试详解,用两级缓存代替三级缓存
Spring循环依赖实验:两级缓存替代三级缓存的可行性研究 摘要:本文通过修改Spring源码,将三级缓存机制简化为两级缓存,验证其在处理循环依赖时的有效性。实验表明,对于单例模式的setter注入循环依赖场景(如A→B→A和A→B→A同时C→A),直接提前创建代理对象并存入二级缓存同样能解决问题。关键修改在于addSingletonFactory方法中跳过三级缓存,直接将代理对象放入earlySingletonObjects。测试案例包含交叉循环依赖和AOP代理场景,证明两级缓存在特定条件下可替代三级缓存
2025-08-19 14:04:17
341
原创 Docker环境搭建RabbitMq集群详解
这里要详细解释下rabbitmq集群,和我们以前的集群模式不一样,比如redis,集群模式主从模式是节点层次来讲的,但是rabbitmq的集群模式是队列层次的,每种队列他的主从同步方式、复制方式、选举方式都是根据队列设置的集群类型来的,在声明队列的时候指定。把节点1 当作主节点,另外两个节点加入集群中,实际上集群中三台机器不分主次,没有主次节点的概念,都是平等的。这里指定quorum类型,这个队列会随机选一个节点作为主,其他两个从来同步,其他队列也是如此。默认账号:guest / guest。
2025-07-22 13:08:52
363
原创 HashMap和ConcurrentHashMap源码精讲
删除元素,删除元素比较简单,就是定位到元素位置,然后删除,这样删除性能不稳定,如果都是数组,那好说,如果有链表和二叉树,那就不好说了。HashMap主要方法就讲完了,下面说下ConcurrentHashMap,它的逻辑基本上和HashMap保持一致,同步上有点区别。如果出现数组在迁移中,就协助迁移,每个线程负责迁移一定范围的数据,最终组合在一起。接下来看下扩容操作,第一次插入数据时才进行扩容,不会在构造函数就进行分配内存。#### 遍历所有键值对entry。插入数据到HashMap。
2025-07-11 17:51:04
396
原创 java多线程环境下资源隔离机制ThreadLocal详解
在我们实际业务开发过程中,会遇到这样的场景,需要在单个线程整个生命周期内部保存全局的数据信息,比如说:单个线程内部全局唯一数据库连接、唯一的日志记录id,线程用户信息等。那么为什么不直接在线程内部采用局部变量呢?这个涉及到线程内部方法调用传递参数比较麻烦,如果直接用Thread对象获取更加方便。每个线程有自己独立的Thread对象Thread对象包含了一个私有变量线程内部可以通过这个threadLocals成员属性拿到ThreadLocalMap,他的每一个节点是一个Entry结构这是什么意思呢?
2025-07-10 22:19:29
732
原创 Git+Jenkins-Docker搭建企业级CI/CD平台
本文介绍了基于阿里云代码托管平台的持续集成部署实践方案。由于云服务器资源限制,选择使用阿里云代码托管平台作为代码仓库,配合Jenkins、Docker和阿里云镜像仓库构建自动化部署流程。详细说明了阿里云代码仓库创建、Dockerfile和Jenkinsfile配置、阿里云镜像仓库设置以及Jenkins安装步骤。重点讲解了Jenkins流水线脚本的实现,包含代码拉取、Maven构建、Docker镜像打包、推送至阿里云镜像仓库以及远程服务器部署的全流程,并强调了相关Jenkins插件的安装要求。整套方案实现了从
2025-06-15 09:48:20
995
原创 Spring源码本地编译并执行测试
本文详细介绍了从源码构建Spring框架开发环境的完整流程。首先需要准备Spring源码、Gradle 5.6.4和IDEA开发工具,然后通过执行Gradle命令编译项目,配置环境变量并解决可能遇到的Git仓库、Maven仓库连接等问题。文章还提供了创建测试模块的步骤,包括编写配置类、服务类和测试用例,并针对测试执行问题和Kotlin版本警告给出了解决方案。整个过程可能会遇到各种环境配置问题,需要耐心调试才能成功搭建开发环境。
2025-06-13 15:22:45
793
原创 跨云服务器请求端口连接异常,报错:“Recv failure: Connection reset by peer”
跨云服务器端口连接异常,腾讯云服务器ip拦截、tcp连接被拒绝,云服务器安全策略
2025-05-04 09:55:24
542
原创 原型模式(Prototype Pattern)及其应用
原型模式是一种创建型设计模式,它可以帮助我们高效地创建和管理复杂对象,同时节省资源和时间。本文将介绍原型模式的基本思想,提供一个通俗易懂的实例,并讨论其在实际应用中的优势。
2023-08-06 17:38:11
193
原创 Windows 和 Linux 上实现 DOCX 转 PDF
word转pdf linux python windows libreoffice
2023-08-06 15:49:29
2009
原创 MVCC (Mysql并发控制实现)原理
MVCC是一种通用的并发控制机制,通过为每个数据行创建不同的版本,实现了高并发的事务处理和数据隔离性。在MVCC中,每个事务在开始时创建一个快照视图,只能看到在事务开始时已经提交的数据版本,避免了脏读、不可重复读和幻读等并发问题,保障了数据的一致性和隔离性。MVCC的实现原理带来了高并发性、数据隔离性和读写分离等优势,使数据库能够更好地应对并发请求,提高了系统的性能和稳定性。
2023-07-23 09:47:49
176
原创 BootstrapValidator表单验证效果无效,不验证
BootstrapValidator是一款非常好用的前端验证插件,但是因为很多问题,一直没有效果。果然不是代码问题,而是因为Bootstrap版本和BootstrapValidator的版本问题。首先贴出来我的引用的文件代码<script src="${path}/js/jquery-3.4.1.min.js" type="text/javascript" ></scrip...
2019-05-14 13:41:20
4168
原创 利用fastjson将map转json报错 JSON.parse expected property name or '}'
1100: "aaa",1101: "bbb",1102: "计算机硬件",1103: "互联网/电子商务/网游",1104: "网店淘宝",1105: "IT管理",1106: "IT--品管、技术/维护经理",1107: "通信技术开发及应用",1108: "电子/电器/半导体/仪表/仪器",1109: "设计",1200: "生产/营运/采购/物流",1201: "生产...
2019-05-02 14:17:43
705
原创 SSM项目中JS文件中文乱码
浏览器端访问SSM Web项目js文件/CSS文件中文乱码问题解决方案其他原因,本文不再介绍,请参考如下链接:https://www.cnblogs.com/kennyliu/p/4086601.html问题原因:配置了Spring 编码格式过滤器问题代码展示,项目中web.xml代码,Spring编码过滤器代码片`<!-- 参数编码过滤器 --> <filter...
2019-04-25 20:08:10
1911
1
原创 利用java反射机制实现对数据库增加和修改操作泛型类
package cn.com.basedao;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.sql.Connection;import java.sql.Date;import j...
2018-08-02 17:17:16
1129
原创 win8.1系统下java环境变量配置正确,仍然显示 java不是内部或外部的命令
win8.1 系统配置JDK总是出错,完全按照网上的方法配置但是不管用,大概耽误的5,6天,最后找到了解决办法。 以前安装的是JDK1.8,更改回1.7出现的问题 网上的办法: 在用户变量中新建JAVA_HOME变量: 变量值:C:\Program Files (x86)\Java...
2018-08-01 14:51:38
940
1
原创 JDBC错误:java.sql.SQLException: ORA-01008: 并非所有变量都已绑定
public int addCourseTime(CourseTimeBean ctb){ int csh_no=ctb.getCsh_no(); int csh_id=ctb.getC_id(); String csh_start_time=ctb.getCsh_start_time(); String csh_due_time=...
2018-07-31 13:53:00
7406
2
docx2pdf-0.1.6-py3-none-any.whl
2023-08-06
使用 Python 和 pytesseract 进行图片文字识别
2023-07-23
python3.5 packing依赖模块
2023-07-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅