热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

利用SpringBeanUtils实现JavaBean的深度克隆与属性复制

参考博客:基于Spring BeanUtils 实现 JavaBean克隆及属性拷贝 基于apache BeanUtils 实现 JavaBean克隆及属性拷贝 基于 MapStruct实现 Java

参考博客:

基于Spring BeanUtils 实现 JavaBean克隆及属性拷贝 基于apache BeanUtils 实现 JavaBean克隆及属性拷贝 基于 MapStruct实现 JavaBean克隆及属性拷贝 Intellij 插件 GenerateO2O

实体类

Goods.java

@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Goods {
/**
* 编号
*/

private Long id;
/**
* 商品名称
*/

private String name;
/**
* 条形码
*/

private String barcode;
/**
* 原价
*/

private BigDecimal price1;
/**
* 优惠价
*/

private BigDecimal price2;
/**
* 库存数量
*/

private Integer amount;
/**
* 商品默认图片,大图
*/

private String img;
/**
* 商品图片列表
*/

private String pics;
/**
* 商品类别
*/

private Integer categoryId;
/**
* 产地县区编号
*/

private Integer countryId;
/**
* 详细产地
*/

private String addr;
/**
* 商品卖点:漂亮,便宜,流行
*/

private String sellPoint;
/**
* 显示优先级
*/

private Integer priority;
/**
* 商品状态:1上架,2下架,3删除,4促销,5推荐
*/

private Integer status;
/**
* 创建时间
*/

private LocalDateTime createTime;
/**
* 更新时间
*/

private LocalDateTime updateTime;
}

GoodsItem.java

@Getter
@Setter
@ToString
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class GoodsItem {
/**
* 编号
*/

private Long id;
/**
* 商品名称
*/

private String name;
/**
* 原价
*/

private BigDecimal price1;
/**
* 优惠价
*/

private BigDecimal price2;
/**
* 商品默认图片,大图
*/

private String img;
/**
* 商品卖点:漂亮,便宜,流行
*/

private String sellPoint;

}

测试代码

public class BeanUtilsTest {
public static void main(String[] args) {
Goods goods = DataUtil.build(Goods.class);
Goods g = new Goods();
BeanUtils.copyProperties(goods, g);
System.out.println(g);
GoodsItem goodsItem = new GoodsItem();
BeanUtils.copyProperties(goods,goodsItem);
System.out.println(goodsItem);
}
}

推荐阅读
  • 本文详细介绍了 Apache Jena 库中的 Txn.executeWrite 方法,通过多个实际代码示例展示了其在不同场景下的应用,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文介绍如何使用Objective-C结合dispatch库进行并发编程,以提高素数计数任务的效率。通过对比纯C代码与引入并发机制后的代码,展示dispatch库的强大功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文介绍如何在Java项目中使用Log4j库进行日志记录。我们将详细说明Log4j库的引入、配置及简单应用,帮助开发者快速上手。 ... [详细]
  • 本文深入探讨了C++对象模型中的一些细节问题,特别是虚拟继承和析构函数的处理。通过具体代码示例和详细分析,揭示了书中某些观点的不足之处,并提供了更合理的解释。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 在多线程编程环境中,线程之间共享全局变量可能导致数据竞争和不一致性。为了解决这一问题,Linux提供了线程局部存储(TLS),使每个线程可以拥有独立的变量副本,确保线程间的数据隔离与安全。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文详细介绍了C语言中链表的两种动态创建方法——头插法和尾插法,包括具体的实现代码和运行示例。通过这些内容,读者可以更好地理解和掌握链表的基本操作。 ... [详细]
  • 解决JAX-WS动态客户端工厂弃用问题并迁移到XFire
    在处理Java项目中的JAR包冲突时,我们遇到了JaxWsDynamicClientFactory被弃用的问题,并成功将其迁移到org.codehaus.xfire.client。本文详细介绍了这一过程及解决方案。 ... [详细]
author-avatar
港乄漫天地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有