java的字節碼增強的方式


轉載自:https://segmentfault.com/a/1190000005812795

1、修改字節碼

第一步要用的工具有ASM、javassist、cglib(基於ASM),用來修改字節碼。

2、加載新的字節碼

第二步,自定義ClassLoader來加載修改后的字節碼

3、替換原來的字節碼

或者替換掉原來的字節碼,這里主要有兩種技術:
1、在JVM加載用戶的Class時,攔截,返回修改后的字節碼
2、在運行時,使用Instrumentation.redefineClasses方法來替換掉原來的字節碼,和這個類相關的實例立即生效。

都需要agent外掛在啟動時
java -javaagent:xxxtransformer.jar xxxclass
或者運行時通過VirtualMachine.attach和VirtualMachine.loadAgent把agent attach到pid上

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM