perf: 优化转换工具类性能

pull/22/head
Parker 3 years ago
parent 71e0f5f694
commit d013a293e3

@ -15,9 +15,9 @@
*/ */
package org.opsli.common.utils; package org.opsli.common.utils;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.extra.cglib.CglibUtil;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -75,12 +75,12 @@ public final class WrapperUtil {
} }
if(isClone){ if(isClone){
source = ObjectUtil.cloneByStream(source); source = ObjectUtil.cloneIfPossible(source);
} }
M m = null; M m = null;
try { try {
m = BeanUtil.copyProperties(source, target); m = CglibUtil.copy(source, target);
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }
@ -101,13 +101,11 @@ public final class WrapperUtil {
return Lists.newArrayList(); return Lists.newArrayList();
} }
if(isClone){
source = ObjectUtil.cloneByStream(source);
}
List<M> toInstanceList = Lists.newArrayList(); List<M> toInstanceList = Lists.newArrayList();
try { try {
toInstanceList = source.stream().map((s) -> transformInstance(s, target, true)).collect(Collectors.toList()); toInstanceList = source.stream()
.map((s) -> transformInstance(s, target, isClone))
.collect(Collectors.toList());
}catch (Exception e){ }catch (Exception e){
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
} }

@ -93,6 +93,7 @@
<protobuf-java.version>3.18.2</protobuf-java.version> <protobuf-java.version>3.18.2</protobuf-java.version>
<beanutils.version>1.9.4</beanutils.version> <beanutils.version>1.9.4</beanutils.version>
<transmittable.version>2.12.5</transmittable.version> <transmittable.version>2.12.5</transmittable.version>
<cglib.version>3.3.0</cglib.version>
<!-- 需要使用着两个版本 来引入对应的模块和插件 --> <!-- 需要使用着两个版本 来引入对应的模块和插件 -->
<!-- API版本 --> <!-- API版本 -->
@ -146,6 +147,13 @@
<version>${captcha.version}</version> <version>${captcha.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
<scope>compile</scope>
</dependency>
<!-- JWT --> <!-- JWT -->
<dependency> <dependency>
<groupId>com.auth0</groupId> <groupId>com.auth0</groupId>
@ -350,6 +358,13 @@
<version>${hutool.version}</version> <version>${hutool.version}</version>
</dependency> </dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>${cglib.version}</version>
<scope>compile</scope>
</dependency>
<!-- 修复 Cxa9261daf-3755 --> <!-- 修复 Cxa9261daf-3755 -->
<!-- 国密算法包 --> <!-- 国密算法包 -->
<dependency> <dependency>

Loading…
Cancel
Save