1、什么是BeanUtils Populate?
BeanUtils Populate是Apache Commons BeanUtils包中BeanUtils类提供的一个方法,它可以帮助我们将Map类型的键值对注入至Bean对象中,有效极大地提高了开发效率。
2、Populate方法的原理
Populate方法的原理十分简单,它会使用Java反射机制获取Bean对象中的所有属性,在获取到属性名之后,会对比Map对象中对应得键值对,如果Map中有与Bean里属性一致的key值,则将该属性的value赋值给相应的Bean属性。根据常见转换规则,会调用到各种转换方法,比如将字符串转成Boolean、Long、Date等,从而完成Map值到Bean属性的转换。
3、Populate方法的参数
Populate方法需要两个参数,一个是我们需要将Map的键值对赋值到Bean中的Bean实例,另一个是Map对象,它可以是HashMap,也可以是自定义的Map实现,map是无序的键值对集合。
4、BeanUtils populate应用场景
BeanUtilsPopulate最常见的场景是,我们从前端接收到Json格式的参数,需要将其转换成Bean对象,也可能只是个Map,这样,我们就可以将这些参数用Populate方法赋值到Bean当中,实现将Map映射到Bean的功能,从而使得我们在各种场景中大大减少了代码量。
5、BeanUtils popoulate的注意事项
Populate方法只能赋值Map的键值对至Bean的属性,属性的从Map到Bean转换会根据常见转换规则进行转换,但可能会出现一些意料之外的情况。此外,Populate方法会忽略空值,对于某些复合属性,如List,Set,Map等等,不能使用Populate方法进行映射,这些复合属性需要我们单独赋值。
(1)beanutils populate是apache提供的用于populate JavaBeans对象的工具,它允许Java程序开发者使用简单的API通过一个Map数据填充一个JavaBeans。在互联网应用中,这样的方式经常被用于从表单或url参数中把数据(Map)注入到JavaBeans中。
(2)beanutils populate
用法如下:
(a)首先,创建一个JavaBeans对象:
Person person = new Person();
(b)然后,给Map填充要注入到Person对象里的数据:
Mapmap= new HashMap();
map.put("name", "John");
map.put("age", 30);
(c)最后,使用beanutils populate将数据填充到Person中:
BeanUtils.populate(person, map);
(3)总结:
beanutils.populate通过把一个Map数据填充到一个JavaBeans对象,可以很容易地实现从表单或url参数中把数据注入到JavaBeans中。它使用一个Map数据来填充一个JavaBeans对象,且支持扩展性,即可以增加匹配Map类型的自定义类型,而且可以轻易的在JavaBeans中设置多种属性,从而避免了重复代码的编写。