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

目录
相关文章
|
6月前
|
Java Maven
【异常解决】为什么会产生jar包冲突,如何排查jar包冲突?
【异常解决】为什么会产生jar包冲突,如何排查jar包冲突?
148 0
|
4月前
|
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呢
60 0
|
8月前
|
Java Maven
Java——如何将一个maven项目打出多个jar包
Java——如何将一个maven项目打出多个jar包
|
XML 缓存 Java
BeanUtils、BeanCopier、Dozer、Orika 哪家强?
背景 在分层的代码架构中,层与层之间的对象避免不了要做很多转换、赋值等操作,这些操作重复且繁琐,于是乎催生出很多工具来优雅,高效地完成这个操作,有BeanUtils、BeanCopier、Dozer、Orika等等,本文将讲述上面几个工具的使用、性能对比及原理分析。
713 0
BeanUtils、BeanCopier、Dozer、Orika 哪家强?
|
Java API Apache
BeanUtils开发包的使用
BeanUtils开发包的使用
144 0
BeanUtils开发包的使用
|
JSON Java 编译器
告别BeanUtils,Mapstruct从入门到精通
如果你现在还在使用BeanUtils,看了本文,也会像我一样,从此改用Mapstruct。
973 0
告别BeanUtils,Mapstruct从入门到精通
|
程序员 Apache
【BeanUtils】自己写的一个BeanUtils-代码方法详解(1)
【BeanUtils】自己写的一个BeanUtils-代码方法详解
156 0
【BeanUtils】自己写的一个BeanUtils-代码方法详解(1)
【BeanUtils】自己写的一个BeanUtils-代码方法详解(2)
【BeanUtils】自己写的一个BeanUtils-代码方法详解
138 0
【BeanUtils】自己写的一个BeanUtils-代码方法详解(2)
|
安全 IDE Java
还在用BeanUtils拷贝对象?MapStruct才是王者!【附源码】
还在用BeanUtils拷贝对象?MapStruct才是王者!【附源码】
186 0
还在用BeanUtils拷贝对象?MapStruct才是王者!【附源码】
|
XML 网络协议 Java
jacoco关于Java代码覆盖率你不得不会的基操!
jacoco关于Java代码覆盖率你不得不会的基操!
273 0
jacoco关于Java代码覆盖率你不得不会的基操!