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