码迷,mamicode.com
首页 > 编程语言 > 详细

关于Spring中BeanUtils的一次使用问题记录

时间:2019-11-07 23:26:31      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:查看   顺序   code   img   deb   on()   未能   数据转换   问题   

1.问题描述:今天在进行前后端联调的时候,发现商品图片不能正常显示;

 

2.排查过程查看浏览器控制台,发现调用接口返回的数据关于图片的字段未返回数据;

          然后,又跑了一下Dao层的单元测试,从数据库中拿出数据正常;

        那基本确认就是代码中数据转换转丢了,打了下debug,果然如此,在BeanUtils.copyProperties(productInfo, productInfoVO)处转换的问题;

 

3.原因:图片字段的值未能正确的拷贝过去,是因为两个Bean的icon(图片)字段未对应;

 

4.动手

             log.info("两个对象的比较:{}",productInfo.getProductIcon() == productInfoVO.getProductIcon());
                    log.info("productInfo的hashcode:{}",productInfo.getProductIcon().hashCode());
                    log.info("productInfoVO的hashcode:{}",productInfoVO.getProductIcon().hashCode());

技术图片

 

 icon字段为String类型的,此处显示为同一个对象,所以为浅拷贝;

 

字段多的Bean转换到字段少的Bean

BeanUtils.copyProperties(productInfo, productInfoVO);

技术图片

 

 

反过来再试下

BeanUtils.copyProperties(productInfoVO, productInfo);

技术图片

 

 

5.总结使用BeanUtils.copyProperties()的注意点:

  BeanUtils.copyProperties(productInfo, productInfoVO)  作用:将一个实体的值拷贝到另一个实体,避免了对Bean大量的get,set;

  (1)拷贝关系:前面参数的值拷贝到后面参数中,即productInfo拷贝到productInfoVO;apache也有一个BeanUtils,顺序恰好相反;

  (2)字段对应:字段要相同,不然会赋值失败;

  (3)此处是浅拷贝

 

 

 

 

关于Spring中BeanUtils的一次使用问题记录

标签:查看   顺序   code   img   deb   on()   未能   数据转换   问题   

原文地址:https://www.cnblogs.com/inu6/p/11816428.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!