BeanUtils,不同 jar 包所埋的坑

简介: 背景   线上代码,两个地方使用了相同的copy 方式,但是执行的效果却完全不一样。 BeanUtils.copyProperties(invoiceMonth, invoiceMonthDTO); 问题描述 1、我们的项目使用了 String 包和 Apache 包两种,而这两个包都提供了...

背景

  线上代码,两个地方使用了相同的copy 方式,但是执行的效果却完全不一样。

BeanUtils.copyProperties(invoiceMonth, invoiceMonthDTO);

问题描述

1、我们的项目使用了 Spring 包和 Apache 包两种,而这两个包都提供了 BeanUtils 工具方法

2、看一下源码:

   1)、Apache 源码是,第一参数:dest;第二参数:source。


public static void copyProperties(Object dest, Object orig)
throws IllegalAccessException, InvocationTargetException {

BeanUtilsBean.getInstance().copyProperties(dest, orig);
}

   2)、Spring 源码是,第一参数:source;第二参数是 target。

public static void copyProperties(Object source, Object target) throws BeansException {
copyProperties(source, target, null, (String[]) null);
}

 

综上可以看出,两个开源包提供的工具类是有差异的,一不小心就会因为 jar 包的错误引入导致程序错误。

3、另外贴出集团规约:避免使用 apache BeanUtils

目录
相关文章
|
4月前
|
Java Maven
SpringBoot用maven打出的jar只有几kb解决
SpringBoot用maven打出的jar只有几kb解决
255 0
|
1月前
|
Java Docker 容器
SpringBoot Jar 包太大 瘦身 【终极版】
SpringBoot Jar 包太大 瘦身 【终极版】
131 1
|
2月前
|
安全 Java Maven
还在用BeanUtils拷贝对象? 快来看看MapStruct吧!!!
MapStruct是一个强大且灵活的Java Bean映射工具,它通过自动生成类型安全的映射代码来简化对象之间的转换过程,并提高了应用程序的性能和可维护性。
|
1月前
|
Java
SpringBoot Jar 包太大 瘦身 【初试】
SpringBoot Jar 包太大 瘦身 【初试】
13 0
|
9月前
|
Java Apache Spring
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
95 0
|
Java Maven
Java——如何将一个maven项目打出多个jar包
Java——如何将一个maven项目打出多个jar包
Maven 依赖已添加, @SpringBootApplication 仍然爆红
Maven 依赖已添加, @SpringBootApplication 仍然爆红
|
XML 缓存 Java
BeanUtils、BeanCopier、Dozer、Orika 哪家强?
背景 在分层的代码架构中,层与层之间的对象避免不了要做很多转换、赋值等操作,这些操作重复且繁琐,于是乎催生出很多工具来优雅,高效地完成这个操作,有BeanUtils、BeanCopier、Dozer、Orika等等,本文将讲述上面几个工具的使用、性能对比及原理分析。
820 0
BeanUtils、BeanCopier、Dozer、Orika 哪家强?
|
Java Maven
Maven项目导入时,org .apache.maven.plugins依赖爆红报错
这种情况我推荐的方法是,首先清空依赖重装看看行不行,不行直接删除本地依赖文件夹,重下,快速有效,至少我是这样的。
306 0
|
JSON Java 编译器
告别BeanUtils,Mapstruct从入门到精通
如果你现在还在使用BeanUtils,看了本文,也会像我一样,从此改用Mapstruct。
1061 0
告别BeanUtils,Mapstruct从入门到精通