spring中强大的bean操作类BeanWrapper

来源:互联网 发布:数据挖掘与r语言 代码 编辑:程序博客网 时间:2024/05/22 00:24
对于bean属性的操作,大家熟知的主要有下面这些工具类:
  • Apache的BeanUtils和PropertyUtils
  • cglib的BeanMap和BeanCopier
  • spring的BeanUtils
但是最近我发现,在spring中有一个更强大的操作bean的类BeanWrapper,它的强大体现在下面两个方面:
  1. 支持设置嵌套属性
  2. 支持属性值的类型转换(设置ConversionService)。
这两方面比其他那些工具类好用多了。
示例代码如下:

BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess( obj);
beanWrapper.setConversionService(conversionService); //值类型转换,跟spring mvc无缝集成
beanWrapper.setAutoGrowNestedPaths( true); //对于null值,是否自动创建新对象
beanWrapper.setPropertyValue("a[0].b[dd].a", "value");

嵌套属性支持数组、Map、对象等的嵌套。
值类型转换类ConversionService,Spring中有具体的实现类,里面已经内建了大部分常用的转换,比如字符串转日期、字符串转数值等。

2 0
原创粉丝点击