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的属性设置就是通过这种方式来完成的。

 
posted @ 2017-10-07 14:31  爪哇小生  阅读(1344)  评论(0编辑  收藏  举报