Spring中的 BeanWrapper
Posted 菜鸟_Admin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring中的 BeanWrapper相关的知识,希望对你有一定的参考价值。
BeanWrapper 是Spring提供的一个用来操作javaBean属性的工具,使用它可以直接修改一个对象的属性。
对于bean属性的操作,大家熟知的主要有下面这些工具类:
1.Apache的BeanUtils和PropertyUtils
2.cglib的BeanMap和BeanCopier
3.spring的BeanUtils
BeanWrapper 的好处在于:
1.支持设置嵌套属性
2.支持属性值的类型转换(设置ConversionService)
下面是一个使用BeanWrapper 包装对象的例子:
package com.glmapper.web.test; import org.springframework.beans.BeanWrapper; import org.springframework.beans.PropertyAccessorFactory; import org.springframework.beans.PropertyValue; public class BeanWrapperTest { public static void main(String[] args) { User user=new User(); //通过PropertyAccessorFactory将user对象封装成BeanWrapper BeanWrapper bw=PropertyAccessorFactory.forBeanPropertyAccess(user); //方式一:直接对属性值进行设置 bw.setPropertyValue("userName", "张三"); //方式二:通过PropertyValue进行设置 PropertyValue pv=new PropertyValue("userName","李四"); bw.setPropertyValue(pv); System.out.println(user.getUserName()); } } //一个User类 class User{ private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } }
在Spring中,HttpServletBean的属性设置就是通过这种方式来完成的。
以上是关于Spring中的 BeanWrapper的主要内容,如果未能解决你的问题,请参考以下文章
死磕 Spring----- IOC 之分析 BeanWrapper
Spring读源码系列番外篇08---BeanWrapper没有那么简单--上
Spring读源码系列番外篇08---BeanWrapper没有那么简单--中
[死磕 Spring 36/43] --- IOC 之分析 BeanWrapper