標籤:system span 封裝 work name service rgs log tor
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