首页 > 代码库 > Apache commons beanutils简介和使用

Apache commons beanutils简介和使用

在一般的写bean组件的时候,都必须要写setter和getter方法,当然假如我们事先已经知道bean的相关属性和方法,写bean是比较简单的,但是组件太多的时候,重复编写经常是枯燥乏味令人厌烦的。但当有些时候我么需要调用动态对象的属性的时候,我们应该怎么来设定和获取对象的属性呢?BeanUtils就可以帮助我们来简化解决这个问题。

     目前最新的版本是1.9.

 

在日常的开发中,下面类似的代码应该是非常的眼熟。

DynaActionForm daf =(DynaActionForm)form ;

 

        User user = new User() ;

 

        user.setId( daf.getString("id" ) ) ;

 

        user.setPassword( daf.getString( "password " ) ) ;

 

        user.setUsername( daf.getString( "username") ) ;

类似的对象的各种属性的传递,在代码中非常常见,利用beanutils可以简化这些工作。

用beanutils的话,效果可以参考:

BeanUtils.copyProperties(user, daf ) ;

 

利用Apache commons beanutils复制对象的代码如下:

packagetest.ffm83.commons.beanutils;

 

import java.util.HashMap;

importorg.apache.commons.beanutils.BeanUtils;

/* 通过commons beanutils进行对象传递

 * 注意:直接进行Bean之间的clone 复制后的2个Bean的同一个属性可能拥有同一个对象的ref,特别是对于属性为类的情况下。

 * @author 范芳铭

 * */

public class BeanutilsUsage {

     public static void main( String[] args ) throws Exception{

         EasyBean bean = new EasyBean();

         bean.setName( "范芳铭" );

        System.out.println("目标对象名称:" + BeanUtils.getProperty( bean,"name" ));

        HashMap map = new HashMap();

        map.put( "1","12120000" );

        map.put( "2","12130000" );

        BeanUtils.setProperty( bean,"telephone", map );

       

        EasyBean dest = new EasyBean();

        BeanUtils.copyProperties( dest, bean );

        System.out.println("...目标复制后名称:" + BeanUtils.getProperty( dest,"name" ));

        System.out.println("...目标复制后电话:" + BeanUtils.getProperty( dest,"telephone(1)" ));

 

    }

}

 

运行后结果如下:

目标对象名称:范芳铭

...目标复制后名称:范芳铭

...目标复制后电话:12120000

 

Apache commons beanutils简介和使用