From f0741e8337faa10ee4472649093c9db72502d2cb Mon Sep 17 00:00:00 2001 From: liaozan <378024053@qq.com> Date: Mon, 13 Nov 2023 16:35:16 +0800 Subject: [PATCH] Remove BeanCopyUtils convert logic --- .../schbrain/common/util/BeanCopyUtils.java | 36 +++---------------- 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/commons/common-util/src/main/java/com/schbrain/common/util/BeanCopyUtils.java b/commons/common-util/src/main/java/com/schbrain/common/util/BeanCopyUtils.java index 5d291af..8e33877 100644 --- a/commons/common-util/src/main/java/com/schbrain/common/util/BeanCopyUtils.java +++ b/commons/common-util/src/main/java/com/schbrain/common/util/BeanCopyUtils.java @@ -1,26 +1,20 @@ package com.schbrain.common.util; -import cn.hutool.core.convert.Convert; -import cn.hutool.core.convert.ConverterRegistry; import cn.hutool.core.lang.Singleton; import cn.hutool.core.util.ReflectUtil; import com.google.common.base.Joiner; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.cglib.beans.BeanCopier; -import org.springframework.cglib.core.Converter; -import org.springframework.util.ClassUtils; -import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; /** - * 注意!!!此类是基于 cglib 实现的 *

- * 默认的 cglib 只支持同名,同类型的属性转换,本类对此场景进行了增强,具体逻辑见 {@link DefaultConverter} + * FBI Warning!!!此类是基于 cglib 实现的, cglib 只支持同名,同类型的属性转换 *

- * 另外最重要的, cglib 是浅拷贝,意味着如果是引用类型,修改源对象会导致目标对象的值也被修改,使用时请注意!!! + * 另外 cglib 是浅拷贝,意味着如果是引用类型,修改源对象会导致目标对象的值也被修改,使用时请注意!!! * * @author liaozan * @since 2022/1/24 @@ -58,39 +52,17 @@ public class BeanCopyUtils { return null; } BeanCopier copier = getCopier(source.getClass(), target.getClass()); - copier.copy(source, target, DefaultConverter.INSTANCE); + copier.copy(source, target, null); return target; } private static BeanCopier getCopier(Class sourceClass, Class targetClass) { String cacheKey = buildCacheKey(sourceClass, targetClass); - return Singleton.get(cacheKey, () -> BeanCopier.create(sourceClass, targetClass, true)); + return Singleton.get(cacheKey, () -> BeanCopier.create(sourceClass, targetClass, false)); } private static String buildCacheKey(Class source, Class target) { return CACHE_KEY_JOINER.join(source.getName(), target.getName()); } - /** - * 基于 hutool 实现的转换 - * - * @see ConverterRegistry#getConverter(Type, boolean) - */ - private static class DefaultConverter implements Converter { - - private static final DefaultConverter INSTANCE = new DefaultConverter(); - - @Override - public Object convert(Object value, Class targetType, Object context) { - if (value == null) { - return null; - } - if (ClassUtils.isAssignableValue(targetType, value)) { - return value; - } - return Convert.convertQuietly(targetType, value); - } - - } - } -- GitLab