BeanCopier系列之一:特性测试
BeanCopier系列之二:使用Converter
BeanCopier拷贝速度快,性能瓶颈出现在创建BeanCopier实例的过程中。
所以,把创建过的BeanCopier实例放到缓存中,下次可以直接获取,提升性能:
BeanCopier系列之二:使用Converter
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();
- }
- }