java字節碼開源軟件

  • asm:ASM 是一個 Java 字節碼操縱框架。它能夠直接以二進制形式動態地生成 stub 類或其餘代理類,或者在裝載時動態地修改類。ASM 提供相似於 BCEL  之類的工具包的功能,可是被設計得更小巧、更快速,這使它適用於實時代碼插裝。spring實現aop底層依賴cglib,cglib依賴asm。
  • bcel:Byte Code Engineering Library (BCEL),這是Apache Software Foundation 的Jakarta 項目的一部分。BCEL是 Java classworking 最普遍使用的一種框架,它能夠讓您深刻 JVM 彙編語言進行類操做的細節。BCEL與Javassist 有不一樣的處理字節碼方法,BCEL在實際的JVM 指令層次上進行操做(BCEL擁有豐富的JVM 指令級支持)而Javassist 所強調的源代碼級別的工做。
  • javassit:Javassist是一個開源的分析、編輯和建立Java字節碼的類庫。是由東京工業大學的數學和計算機科學系的 Shigeru Chiba (千葉 滋)所建立的。它已加入了開放源代碼JBoss 應用服務器項目,經過使用Javassist對字節碼操做爲JBoss實現動態"AOP"框架。

    關於java字節碼的處理,目前有不少工具,如bcel,asm。不過這些都須要直接跟虛擬機指令打交道。若是你不想了解虛擬機指令,能夠採用javassist。javassist是jboss的一個子項目,其主要的優勢,在於簡單,並且快速。直接使用java編碼的形式,而不須要了解虛擬機指令,就能動態改變類的結構,或者動態生成類。java

  • cglib:CGLib (Code Generation Library) 是一個強大的,高性能,高質量的Code生成類庫。它能夠在運行期擴展Java類與實現Java接口。Hibernate用它來實現PO字節碼的動態生成。CGLib 比 Java 的 java.lang.reflect.Proxy 類更強的在於它不只能夠接管接口類的方法,還能夠接管普通類的方法。

    CGLib 的底層是Java字節碼操做框架 —— ASMspring

相關文章
相關標籤/搜索