Spring 的 BeanUtils 工具类
场景:前端通过POST提交一个JSON格式的字符串,比如里面的数据设计到的表有多个,我们需要创建一个实体类对涉及这多个表属性去进行接收。接收到以后,我们又需要通过这个对象获取相对应的值分别赋值到实体类中,对于大部分患有懒癌晚期程序员来说这是不可容忍的,所以我们就可以通过一些工具类来完成。
选择: Apache 的 BeanUtils 工具类 和 Spring 的 BeanUtils 工具类。
在 这篇博客中提到。Apache的 BeanUitls 的对象拷贝 copyProperties 方法 效率很慢,阿里编码规范也提到尽量不要使用的该方法,所以可以使用 Spring 所提供的的 BeanUtils 的对象拷贝
对应的类需要实现geter seter 方法
举个栗子
实体类1
@Data @AllArgsConstructor @NoArgsConstructor public class UserInfo { private Integer id; private String name; private Character gender; private String address; private Integer age; }
实体类2
@Data @AllArgsConstructor @NoArgsConstructor public class User { private Integer id; private String name; private Character gender; }
测试
@Test public void test(){ UserInfo userInfo = new UserInfo(1,"田坤",男,"陕西西安",22); User user = new User(); BeanUtils.copyProperties(userInfo,user); System.out.println(user); // User(id=1, name=田坤, gender=男) }