一、背景介紹 1、需求說明 需求是在程序運行期間,向某個類的某個方法前、后加入某段業務代碼,或者直接替換整個方法的業務邏輯,即業務方法客制化。注意是運行期間動態更改,做到無侵入,而不是事先在代碼中 ...
一、背景介紹 1、需求說明 需求是在程序運行期間,向某個類的某個方法前、后加入某段業務代碼,或者直接替換整個方法的業務邏輯,即業務方法客制化。注意是運行期間動態更改,做到無侵入,而不是事先在代碼中 ...
誰還沒遇上過NoClassDefFoundError咋地——淺談字節碼生成與熱部署 前言 在Java程序員的世界里,NoClassDefFoundError是一類相當令人厭惡的錯誤,因為這類錯 ...
由於個人工作原因,近期遇到多起因應用性能導致業務中斷的事情。多次排查分析總結,發現是應用性能問題,當然性能的提現是多維度的,在這里就不贅述了。 主要關注在應用運行中斷之前就發現它(事前處理),是很重 ...
最近項目需要對基礎架構做增強,需要基於字節碼在不侵入原有代碼的情況下實現, 故把javassist的基本用法過了一遍。這篇博客就是把主要講講為什么要用javassist以及javassist的基本用法。 1.為什么要使用javassist(上手成本低) 基於字節碼增強的框架有兩個ASM ...
字節碼插樁 我們知道JVM是不能直接執行.java 代碼,也不能直接執行.class文件,它只能執行.class 文件中存儲的指令碼。這就是為什么class需要通過classLoader 裝載以 ...
Java動態性的兩種常見實現方式 字節碼操作 反射 運行時操作字節碼可以讓我們實現如下功能: 動態生成新的類 動態改變某個類的結構(添加/刪除/修改 新的屬性/方 ...
在一個老項目中,不知是哪位牛人寫的程序,調用了FileInputStream,但是沒有關閉文件流。而這個地方是最常用的一個地方,導致系統運行一段時間之后內存耗盡,報文件句柄數過多的錯誤。 ...