研究Hibernate源码,对hibernate如何使用cglib优化反射操作感兴趣:
分析结果:
1. 获取resultset后,创建VO类 ,FastClass.create(clazz);
2. 使用 bulkbean创建优化器, net.sf.cglib.beans.BulkBean,是个批量设置属性值的类:
BulkBean optimizer = BulkBean.create(clazz, getterNames, setterNames, types);
3. 创建VO类实例 :
Object instance = fastClass.newInstance();
4. 用优化器批量设置VO实例的属性:
optimizer.setPropertyValues( instance, optimizer.getPropertyValues(instance) );
分析结果:
1. 获取resultset后,创建VO类 ,FastClass.create(clazz);
2. 使用 bulkbean创建优化器, net.sf.cglib.beans.BulkBean,是个批量设置属性值的类:
BulkBean optimizer = BulkBean.create(clazz, getterNames, setterNames, types);
3. 创建VO类实例 :
Object instance = fastClass.newInstance();
4. 用优化器批量设置VO实例的属性:
optimizer.setPropertyValues( instance, optimizer.getPropertyValues(instance) );
本文探讨了Hibernate如何利用CGLIB进行反射操作优化。主要包括:1. 获取ResultSet后创建VO类;2. 使用BulkBean批量设置属性;3. 创建VO实例;4. 批量设置VO属性值。
1万+

被折叠的 条评论
为什么被折叠?



