一、背景介绍 1、需求说明 需求是在程序运行期间,向某个类的某个方法前、后加入某段业务代码,或者直接替换整个方法的业务逻辑,即业务方法客制化。注意是运行期间动态更改,做到无侵入,而不是事先在代码中 ...
一、背景介绍 1、需求说明 需求是在程序运行期间,向某个类的某个方法前、后加入某段业务代码,或者直接替换整个方法的业务逻辑,即业务方法客制化。注意是运行期间动态更改,做到无侵入,而不是事先在代码中 ...
谁还没遇上过NoClassDefFoundError咋地——浅谈字节码生成与热部署 前言 在Java程序员的世界里,NoClassDefFoundError是一类相当令人厌恶的错误,因为这类错 ...
由于个人工作原因,近期遇到多起因应用性能导致业务中断的事情。多次排查分析总结,发现是应用性能问题,当然性能的提现是多维度的,在这里就不赘述了。 主要关注在应用运行中断之前就发现它(事前处理),是很重 ...
最近项目需要对基础架构做增强,需要基于字节码在不侵入原有代码的情况下实现, 故把javassist的基本用法过了一遍。这篇博客就是把主要讲讲为什么要用javassist以及javassist的基本用法。 1.为什么要使用javassist(上手成本低) 基于字节码增强的框架有两个ASM ...
字节码插桩 我们知道JVM是不能直接执行.java 代码,也不能直接执行.class文件,它只能执行.class 文件中存储的指令码。这就是为什么class需要通过classLoader 装载以 ...
Java动态性的两种常见实现方式 字节码操作 反射 运行时操作字节码可以让我们实现如下功能: 动态生成新的类 动态改变某个类的结构(添加/删除/修改 新的属性/方 ...
在一个老项目中,不知是哪位牛人写的程序,调用了FileInputStream,但是没有关闭文件流。而这个地方是最常用的一个地方,导致系统运行一段时间之后内存耗尽,报文件句柄数过多的错误。 ...