BeanCopier系列之三:缓存BeanCopier提升性能

[url=http://czj4451.iteye.com/blog/1998750]BeanCopier系列之一:特性测试[/url]
[url=http://czj4451.iteye.com/blog/2044101]BeanCopier系列之二:使用Converter[/url]


BeanCopier拷贝速度快,性能瓶颈出现在创建BeanCopier实例的过程中。

所以,把创建过的BeanCopier实例放到缓存中,下次可以直接获取,提升性能:


public class CachedBeanCopier {

static final Map<String, BeanCopier> BEAN_COPIERS = new HashMap<String, BeanCopier>();

public static void copy(Object srcObj, Object destObj) {
String key = genKey(srcObj.getClass(), destObj.getClass());
BeanCopier copier = null;
if (!BEAN_COPIERS.containsKey(key)) {
copier = BeanCopier.create(srcObj.getClass(), destObj.getClass(), false);
BEAN_COPIERS.put(key, copier);
} else {
copier = BEAN_COPIERS.get(key);
}
copier.copy(srcObj, destObj, null);
}

private static String genKey(Class<?> srcClazz, Class<?> destClazz) {
return srcClazz.getName() + destClazz.getName();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值