Spring的BeanUtils的copyProperties方法

简介: 项目中遇到的情况是: 文件解析完之后将文件放在一个pojo里面

项目中遇到的情况是: 文件解析完之后将文件放在一个pojo里面,形如:

 private String ext1;           //WX ADD  11/19
    private String ext2;            //WX ADD  11/19
    private List<FilePnlPojo> panelInfo;
    private List<FileDefectPojo> defectInfo;
    private List<FilePatternPojo> patternInfo;

最终这份文件是要保存到 数据库中的,我总不能一个一个调用set方法set到对应的实体类里面吧?

Spring的BeanUtils的copyProperties大大简化了set的动作?


为什么说是简化了呢?


因为copyProperties总有不能完成你想要的一切,例如转格式/判空/其他逻辑处理....


这时候先使用copyProperties copy一份你想要的对象,再配合上自己的业务逻辑将对象的部分属性处理,最终保存实体类来达到自己的目的。


注意点

1.Spring的BeanUtils的CopyProperties方法需要对应的属性有getter和setter方法;

2.如果存在属性完全相同的内部类,但是不是同一个内部类,即分别属于各自的内部类,则spring会认为属性不同,不会copy;

3.泛型只在编译期起作用,不能依靠泛型来做运行期的限制;

4.最后,spring和apache的copy属性的方法源和目的参数的位置正好相反,所以导包和调用的时候都要注意一下。

5.对象和实体类的set 方法逻辑需要保证一致,否则出现问题会查到你怀疑人生。


目录
相关文章
|
1月前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
31 1
|
2月前
|
存储 安全 Java
|
1月前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
28 1
|
28天前
|
前端开发 Java Spring
Spring MVC源码分析之DispatcherServlet#getHandlerAdapter方法
`DispatcherServlet`的 `getHandlerAdapter`方法是Spring MVC处理请求的核心部分之一。它通过遍历预定义的 `HandlerAdapter`列表,找到适用于当前处理器的适配器,并调用适配器执行具体的处理逻辑。理解这个方法有助于深入了解Spring MVC的工作机制和扩展点。
22 0
|
3月前
|
Java 应用服务中间件 Spring
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
IDEA 工具 启动 spring boot 的 main 方法报错。已解决
|
5月前
|
安全 Java Spring
Spring问题之如何配置Bean的初始化方法和销毁方法
Spring问题之如何配置Bean的初始化方法和销毁方法
|
4月前
|
Java Spring
|
4月前
|
存储 SQL Java
|
5月前
|
Java Spring
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
Spring初始化加速的思路和方案问题之在BeanFactory#doGetBean方法中,栈状态的变化影响bean的初始化的问题如何解决
|
5月前
|
Java 数据库连接 API
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
Spring事务管理嵌套事务详解 : 同一个类中,一个方法调用另外一个有事务的方法
310 1