SpringBoot项目下的对象属性复制工具类

简介: SpringBoot项目下的对象属性复制工具类

其实不止是SpringBoot项目,其余的很多类型的项目,也都会存在对象复制的相关需求,所以,我们一般都会通过一个工具类来解决这类的需求。

解决方案和相应的工具类

首先我们要确定一件事情,那就是是否是相同属性的对象进行复制,如我们项目中的PO类,和VO类,就是会经常会存在互转的情况。

我们先来看一下相应的工具类吧,这也是我项目正在使用的工具类了。

public class CopyUtil {
    /**
     * 多个实体的复制
     * @param source
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> List<T> copyList(List source, Class<T> clazz) {
        List<T> target = new ArrayList<>();
        if (!CollectionUtils.isEmpty(source)) {
            for (Object c : source) {
                T obj = copy(c, clazz);
                target.add(obj);
            }
        }
        return target;
    }
    /**
     * 单个实体之间的复制
     * @param source
     * @param clazz
     * @param <T>
     * @return
     */
    public static <T> T copy(Object source, Class<T> clazz) {
        if (source == null) {
            return null;
        }
        T obj = null;
        try {
            obj = clazz.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }
        BeanUtils.copyProperties(source, obj);
        return obj;
    }
}

这里需要注意一点,复制转换属性,不是直接克隆对象,复制工具类是在两个不同的类型的对象之间进行属性值的复制。

而克隆对象又是另外一种情况,是同样类型对象下的直接克隆,下一篇我们再来说一下克隆的相关工具类。

通过上述复制工具类,我们就可以通过相应的代码调用就可以正常使用了,我也写个示例代码吧,如下:

DemoA demoA = CopyUtils.copy(demoB, DemoB.class);

目录
相关文章
|
9天前
|
XML 安全 Java
Spring Boot中使用MapStruct进行对象映射
本文介绍如何在Spring Boot项目中使用MapStruct进行对象映射,探讨其性能高效、类型安全及易于集成等优势,并详细说明添加MapStruct依赖的步骤。
|
5月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
2月前
|
druid Java Maven
|
2月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
363 0
|
4月前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
55 0
|
4月前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
42 0
|
6月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的社区帮扶对象管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的社区帮扶对象管理系统附带文章源码部署视频讲解等
37 4
|
6月前
|
Java 关系型数据库 MySQL
SpringBoot系列教程之事务传递属性
SpringBoot系列教程之事务传递属性
|
7月前
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
217 1
|
7月前
|
Java
SpringBoot 项目启动初始化一个Map对象到内存
SpringBoot 项目启动初始化一个Map对象到内存
156 1
下一篇
DataWorks