您的位置:首页 > 运维架构 > Apache

Apache commons beanutils简介和使用

2014-12-29 17:29 337 查看
在一般的写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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: