使用cglib动态创建类,添加方法

cglib是一个开源项目!

是一个强大的,高性能,高质量的Code生成类库,它可以在运行期扩展Java类与实现Java接口。许多开源项目都用到了它,如Hibernate,Spring之类用它来实现动态代理。

简单样例—动态生成bean

样例说明:建立一个动态实体bean,使用cglib动态加入属性,和相应的get,set方法。

需要导入cglib-nodep-2.2.jar

been类

 public class CglibBean { /** * 实体Object */ public Object object = null; /** * 属性map */ public BeanMap beanMap = null; public CglibBean() { super(); } @SuppressWarnings("unchecked") public CglibBean(Map propertyMap) { this.object = generateBean(propertyMap); this.beanMap = BeanMap.create(this.object); } /** * 给bean属性赋值 * @param property 属性名 * @param value 值 */ public void setValue(String property, Object value) { beanMap.put(property, value); } /** * 通过属性名得到属性值 * @param property 属性名 * @return 值 */ public Object getValue(String property) { return beanMap.get(property); } /** * 得到该实体bean对象 * @return */ public Object getObject() { return this.object; } @SuppressWarnings("unchecked") private Object generateBean(Map propertyMap) { BeanGenerator generator = new BeanGenerator(); Set keySet = propertyMap.keySet(); for (Iterator i = keySet.iterator(); i.hasNext();) { String key = (String) i.next(); generator.addProperty(key, (Class) propertyMap.get(key)); } return generator.create(); } 

转载于:https://www.cnblogs.com/lqCnblog/p/6828648.html

你可能感兴趣的:(使用cglib动态创建类,添加方法)