基于Spring BeanUtils 实现 JavaBean克隆及属性拷贝

参考博客:

基于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);
    }
}