Spring - HITSUN2015/Util GitHub Wiki

SPRING ASM

项目组成

Module
	|----Class
		|----Method
			|---------|
		|----Field
			|---------|
		|-----------------|----Annotation
			
所以就有对应的ModuleWriter,ClassWriter,MethodWriter,FieldWriter,AnnotationWriter
其中,ModuleWriter和ClassWriter互相持有,可能是功能需求吧。。。

自己实现asm需要功能 需要解决的问题

如何读取class
如何找到 用户想修改代码的地方
如何把用户代码 加入到class文件中
如何在jvm load该class之前,修改该class内容

疑问

1 抽象类Visitor的public方法全部被覆写,不知道为什么还要有Visitor类,为了保留原asm的扩展性?
2 ByteVector 如何优化了 DataOutputStream 

参考资料

http://asm.ow2.org/
http://www.cnblogs.com/liuling/archive/2013/05/25/asm.html
http://joinhack.iteye.com/blog/796552
http://blog.csdn.net/u014586894/article/details/51636614
http://blog.csdn.net/cq1982/article/details/46326803
http://blog.csdn.net/mr__fang/article/details/54846502

SPRING CGLIB

功能和 asm差不都 spring完全依赖了该包

SPRING OBJENESIS

实例化对象 不需要 构造函数,我没有找到 spring中用到该方法的地方