All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.smallframework.spring.util.BeanCopierUtils Maven / Gradle / Ivy

The newest version!
package org.smallframework.spring.util;

import org.springframework.cglib.beans.BeanCopier;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * spring cglib copy方法
 */
public class BeanCopierUtils {

    public static Map beanCopierMap = new ConcurrentHashMap<>();

    /**
     * 使用Copier进行拷贝,增加拷贝效率;注意此方法拷贝会将所有属性遍历一遍(包含null的属性也会拷贝一次)
     * 默认BeanCopier只会做同名,同类型属性的copier,否则就会报错.
     * 注意对于集合类型最好单独处理.
     * @param source
     * @param target
     * @param 
     * @param 
     */
    public static  void copyProperties(T source, I target) {
        String beanKey = generateKey(source.getClass(), target.getClass());
        BeanCopier copier = beanCopierMap.get(beanKey);
        if (copier == null) {
            copier = BeanCopier.create(source.getClass(), target.getClass(), false);
            beanCopierMap.put(beanKey, copier);
        }
        copier.copy(source, target, null);
    }

    private static String generateKey(Class aClass, Class aClass1) {
        return aClass.toString() + aClass1.toString();
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy