- 浏览: 567941 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
a1641693970:
还不错,学习了
BeanUtils使用总结(二)LazyDynaBean -
zjfshowtime:
很好的办法,学习了。
ORA-28001: the password has expired -
ya654277yo:
哦,多谢分享
Apache整合Tomcat后get方式提交中文乱码问题解决 -
foolkeeper:
nice !!
jvm内存参数设定 -
tracy821:
谢谢了,找了好久才找到
关于Spring 声明式事务处理时,throws exception不回滚的问题
1、 BeanUtils一共分4个包:
org.apache.commons.beanutils
org.apache.commons.beanutils.converters
org.apache.commons.beanutils.locale
org.apache.commons.beanutils.locale.converters
其中上面两个是BeanUtils的默认实现,它没有针对本地化的任何处理,这个可以提高执行效率。
但是若你的程序对于本地化有要求的话,那还是使用下面2个包比较安全。
org.apache.commons.beanutils
这个包主要提供用于操作JavaBean的工具类,Jakarta-Common-BeanUtils的主要功能都在这个包里实现。
2、BeanUtils可以直接get和set一个属性的值。它将property分成3种类型:
Simple——简单类型,如Stirng、Int……
Indexed——索引类型,如数组、arrayList……
Maped——这个不用说也该知道,就是指Map啦,比如HashMap……
访问不同类型的数据可以直接调用函数getProperty和setProperty。getProperty只有2个参数,第一个是JavaBean对象,第二个是要操作的属性名;setProperty提供三个参数,第一是JavaBean对象,第二个是要操作的属性名,第三个为要设置的具体的值
(1)Simple
//对于Simple类型,参数二直接是属性名即可
System.out.println(BeanUtils.getProperty(c, "name"));
(2)Map
//对于Map类型,则需要以“属性名(key值)”的形式
System.out.println(BeanUtils.getProperty(c, "address (A2)"));
HashMap am = new HashMap();
am.put("1","234-222-1222211");
am.put("2","021-086-1232323");
BeanUtils.setProperty(c,"telephone",am);
System.out.println(BeanUtils.getProperty(c, "telephone (2)"));
Map类型也可以采用BeanUtils.getMappedProperty(c, "address","A2");
(3)index
//对于Indexed,则为“属性名[索引值]”,注意这里对于ArrayList和数组都可以用一样的方式进行操作。
System.out.println(BeanUtils.getProperty(c, "otherInfo[2]"));
BeanUtils.setProperty(c, "product[1]", "NOTES SERVER");
System.out.println(BeanUtils.getProperty(c, "product[1]"));
index类型还可以采用BeanUtils.getIndexedProperty(c,"product",1);
(4)nest 3种类也可以组合使用啦!
System.out.println(BeanUtils.getProperty(c, "employee[1].name"));
3、bean copy功能
Company c2 = new Company();
BeanUtils.copyProperties(c2, c);
但是这种copy都是浅拷贝,复制后的2个Bean的同一个属性可能拥有同一个对象的ref,这个在使用时要小心,特别是对于属性为自定义类的情况
4、 BeanUtils和PropertyUtils
这两个类几乎有一摸一样的功能,唯一的区别是:BeanUtils在对Bean赋值是会进行类型转化。举例来说也就是在copyProperty时只要属性名相同,就算类型不同,BeanUtils也可以进行copy;而PropertyBean则可能会报错!!
针对上面的例子,新建一个Company2的类,其中代码与Company一样,只是将otherinfo从String[]改为String。
Company c = init();
Company2 c2 = new Company2();
BeanUtils.copyProperties(c2,c);
// PropertyUtils.copyProperties(c2,c); 这句会报错!!
System.out.println(c2.getOtherInfo());
当然2个Bean之间的同名属性的类型必须是可以转化的,否则用BeanUtils一样会报错。
若实现了org.apache.commons.beanutils.Converter接口则可以自定义类型之间的转化。
由于不做类型转化,用PropertyUtils在速度上会有很大提高!
此外,不作类型转化还有一个好处,如下面的代码:
//test data type convert
// ArrayList a1 = BeanUtils.getProperty(c,"product"); //BeanUtils返回的是String
System.out.println("--" + BeanUtils.getProperty(c,"product")); //取出后直接被转为String
ArrayList a = (ArrayList)PropertyUtils.getProperty(c,"product");//PropertyUtils返回的是Object
System.out.println("--" + a.get(1));
用BeanUtils无法返回一个对象(除非自己写一个Converter),它会自动进行类型转化,然后返回String。对于想返回java类或自定义类的话,还是请使用PropertyUtils
5、Utils类
所有的XXXUtils类都提供的是静态方法,可以直接调用,其主要实现都在相应的XXXUtilsBean中:
BeanUtils ——> BeanUtilsBean
ConvertUtils ——> ConvertUtilsBean
PropertyUtils ——> PropertyUtilsBean
(1)PropertyUtils,获取属性的Class类型
public static Class getPropertyType(Object bean, String name)
(2)ConstructorUtils,动态创建对象
public static Object invokeConstructor(Class klass, Object arg)
(3)MethodUtils,动态调用方法
MethodUtils.invokeMethod(bean, methodName, parameter);
发表评论
-
BCD Conversion in java
2016-03-31 23:39 1792/** * Copyright 2010 Firat ... -
在java代码中获取JVM参数
2014-04-08 11:16 14206近日关注性能调优,关注JMX,发现java.lang.man ... -
GC日志分析配置与工具
2013-05-08 11:32 1317-verbose:gc(打印GC日志) -Xloggc:( ... -
java 实现HTTP PROXY
2012-12-06 17:21 7534日常应用中使用过很多次代理,主要停留在配置级别。 近期无意看 ... -
运行时获取方法调用堆栈信息(java)
2012-09-14 10:53 9654前几日系统流程回调时,一个方法莫名其妙被调用,无法定位调用点。 ... -
EL表达式在tomcat7.0下的new关键字不能使用
2012-08-24 17:25 4021最近生产系统部署个小应用,服务器选型tomcat7.0,一直运 ... -
xfire设置连接超时问题
2012-08-01 17:25 5105近期使用xfire作为客户端访问WS,结果因为目标主机假死 ... -
将多个对象写到一个文件
2012-07-20 17:08 1189来看一段ObjectOutputStream构造方法的源代码 ... -
多线程学习笔记:synchronized
2011-12-15 17:32 814Java语言的关键字,当它 ... -
(转)使用 Eclipse Memory Analyzer 检测内存泄漏问题
2011-12-14 18:10 1094本文是关于在开发 Talend RCP 过程中碰 ... -
多线程学习笔记:thread 线程中的sleep()、wait()、yield()、join()
2011-12-14 17:46 12471.sleep()方法 在指定时间内让当前正在执行的线程暂 ... -
jconsole监控JVM
2011-12-12 17:46 1528本地监控: Jconsole [processed] ... -
Java 6 JVM参数选项大全(中文版)
2011-11-03 15:19 1000本文 是基于最新的SUN官方 文档Java SE 6 ... -
Java实现远程屏幕监视
2011-10-19 17:40 700Robot robot = new Robot(); / ... -
java线程池 常用方法
2011-09-24 22:52 1353在Java5之后,并发线程这块发生了根本的变化,最重要的莫过于 ... -
JAVA 调用Web Service的方法
2011-08-15 10:28 11211.使用HttpClient 用到的jar文件:comm ... -
JVM监控工具--jvmstat
2011-08-02 15:42 1236首先就是下载这个工具链接:http://java.sun.co ... -
java性能优化
2011-07-18 15:19 1075一、避免在循环条件中 ... -
jvm内存参数设定
2011-07-17 20:30 1327在开发java应用时经常出 ... -
怎样解决Java内存泄漏
2011-07-15 11:38 1429解决Java 内存泄漏 Java内存泄漏是每个 ...
相关推荐
commons-beanutils使用工具包
beanutils使用的一个小例子,主要完成一个map转化成一个bean的过程
在使用BeanUtils之前,我们需要定义一个测试用的Bean。下面是一个简单的Month Bean的定义: ```java package test.jakarta.commons.beanutils; public class Month { private int value; private String name; ...
使用servlet实现注册&登录&解决注册乱码&beanutils;的使用
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
BeanUtils工具由Apache软件基金组织编写,提供给我们使用,主要解决的问题是:把对象的属性数据封装到对象中。在整个J2EE的编程过程中,我们经常会从各种配置文件中读取相应的数据,需要明白的一点是从配置文件中...
赠送jar包:commons-beanutils-1.9.4.jar; 赠送原API文档:commons-beanutils-1.9.4-javadoc.jar; 赠送源代码:commons-beanutils-1.9.4-sources.jar; 赠送Maven依赖信息文件:commons-beanutils-1.9.4.pom; ...
BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。beanUtils 可以便于对javaBean的属性、对象进行赋值,beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
BeanUtils是由Apache公司开发的针对操作JavaBean的工具包。...但是由Apache公司开发的BeanUtils会更常用,同时,BeanUtils还需要配合第三方日志工具来使用,这里我们同样使用Apache公司的common logging
BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程BeanUtils教程
BeanUtils_1.8.3最新帮助文档,希望对给位有用。。。
commons-beanutils-1.8.0.jar beanutils.jar beanutils.jar工具包
BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包BeanUtils的包
commons-beanutils-1.8.0 jar包: 1.commons-beanutils-1.8.0.jar 2.commons-beanutils-1.8.0-javadoc.jar 3.commons-beanutils-1.8.0-sources.jar 4.commons-beanutils-bean-collections-1.8.0.jar 5.commons-...
赠送jar包:commons-beanutils-1.9.3.jar; 赠送原API文档:commons-beanutils-1.9.3-javadoc.jar; 赠送源代码:commons-beanutils-1.9.3-sources.jar; 包含翻译后的API文档:commons-beanutils-1.9.3-javadoc-...
Commons-beanutils jar包,比较新希望对大家能有帮助
Commons-beanutil中包含大量和JavaBean操作有关的工具方法,使用beanutils可轻松利用Java反射机制来完成所需功能,而不需要详细研究反射的原理和使用,同时beanutils类库中提出了动态Bean的概念,可在运行时动态对...
完美beanUtils 1.8 jar包与源码
此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。