- 浏览: 938876 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
BeanUtils apache开发的为了简化对bean的开发的一套API下面就对开发中常用的API进行演示
第一步:搭建BeanUtil所需的*.jar commons-beanutils-1.8.3.jar
commons-logging-1.1.1.jar 导入包后需要构建路径 见附件
第二步:编写一个bean Person.java
public class Person {
private int age;
private String name;
private String password;
private Date birthdiy;
public Date getBirthdiy() {
return birthdiy;
}
public void setBirthdiy(Date birthdiy) {
this.birthdiy = birthdiy;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
第三步:编写一个简单单元测试演示常用技巧
public class BeanUtilsTest {
/*
* BeanUtils默认只支持8中基本数据类型 ,基本类型会自动转换为相应的bean类型
*
*/
@Test
public void test1() throws IllegalAccessException, InvocationTargetException
{
Person person=new Person();
BeanUtils.setProperty(person, "name","小张");
BeanUtils.setProperty(person, "age","20");
BeanUtils.setProperty(person, "password","1234");
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getPassword());
}
/**
* 自定义类型转换器
* @throws InvocationTargetException
* @throws IllegalAccessException
*/
@Test
public void test2() throws IllegalAccessException, InvocationTargetException
{
//注册一个类型转换器
ConvertUtils.register(new Converter(){
public Object convert(Class type, Object value) {
//判断这个value是否为空
if(value==null)
{
return null;
}
//判断这个value是否是字符串类型
if(!(value instanceof String))
{
return null;
}
//判断这个value是否为空字符串
String str=(String)value;
if(str.trim().equals(""))
{
return null;
}
//满足上面条件就执行类型装换
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
try {
return dateFormat.parse(str);
} catch (ParseException e) {
throw new ConversionException("不能类型转换");
}
}
}, Date.class);
Person person=new Person();
BeanUtils.setProperty(person, "birthdiy", "2010-03-12");
Date date=person.getBirthdiy();
System.out.println(date.toLocaleString());
}
/**
* 使用BeanUtils中的类型转换器
* @throws InvocationTargetException
* @throws IllegalAccessException
*/
@Test
public void test3() throws IllegalAccessException, InvocationTargetException
{
//第二个参数的意思是要被转换成什么类型
ConvertUtils.register(new DateLocaleConverter(), Date.class);
Person person=new Person();
BeanUtils.setProperty(person, "birthdiy", "2010-03-12");
Date date=person.getBirthdiy();
System.out.println(date.toLocaleString());
}
/*
* 使用Map来把数据封装到bean中
*
*/
@Test
public void test4() throws IllegalAccessException, InvocationTargetException
{
Map<String ,String > map=new HashMap<String, String>();
map.put("age", "20");
map.put("name", "小王");
map.put("password", "");
map.put("birthdiy", "2010-10-12");
//第二个参数的意思是要被转换成什么类型
ConvertUtils.register(new DateLocaleConverter(), Date.class);
Person person=new Person();
//使用map集合去填充到bean中
BeanUtils.populate(person, map);
Date date=person.getBirthdiy();
System.out.println(date.toLocaleString());
System.out.println(person.getAge());
System.out.println(person.getName());
System.out.println(person.getPassword());
}
}
- commons-beanutils-1.8.3.jar (226.6 KB)
- 下载次数: 1
- commons-logging-1.1.1.jar (59.4 KB)
- 下载次数: 1
发表评论
-
轻松看懂Java字节码
2018-04-09 10:28 621计算机只认识0和1。这意味着任何语言编写的程序最终都 ... -
happens-before俗解
2018-04-09 10:03 595学习Java并发,到后面总会接触到happens-befor ... -
位与&,位或|,位异或^运算
2018-04-04 17:25 625一.按位与运算符 参加运算的两个数据,按二进制位进行位与 ... -
Java中>>、>>>、<<
2018-04-04 14:47 430定义: 右移动>>:带符号右移。正数右移高位 ... -
在Java中谈尾递归--尾递归和垃圾回收的比较
2017-08-29 17:49 460转载请注明:博客园- ... -
hotspot的垃圾回收策略,设置和调优
2017-01-11 18:48 1896我们都知道JVM内存由几个部分组成: Java栈、程序计数器 ... -
两点距离计算
2016-11-05 18:03 549public class DistanceUtil { pr ... -
protobuf对象序列化问题一
2016-06-15 21:07 2799今天在项目中遇到一个奇葩问题。问题描述:项目基于dubbo服务 ... -
Protostuff对象序列化工具
2016-06-08 09:53 1812VO.java import java.io.Serial ... -
高性能序列化、反序列化protostuff 使用
2016-06-07 16:45 30381、引用jar包: pom.xml: <!-- p ... -
Java调用bat文件和exe文件
2016-01-12 11:09 957public static void main(String ... -
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
2015-12-30 15:55 10542这里在开始搭建环境之前请搭建先熟悉了解Dubbox、Red ... -
网站集成ueditor+上传文件到共享盘
2015-12-10 13:47 1957这里给大家分享下载使用ueditor使用心得, ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4931最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
JCIFS--java通过域登录实现单点登录
2014-09-04 15:38 4154JCIFS--java通过域登录实现单点登录 ... -
JPA 去除重复列数据
2013-12-30 15:31 11190//清除重复列 Session sessi ... -
使用Eclipse构建Maven的SpringMVC项目
2013-12-12 13:05 990使用Eclipse构建Maven的Spri ... -
Ehcache 整合Spring 使用页面、对象缓存
2013-12-12 13:04 1293Ehcache 整合Spring 使用页面、对象缓存 E ... -
Spring mvc整合hibernate例子
2013-12-11 13:42 1185企业级项目实战(带源码)地址: http://zz563143 ...
相关推荐
commons-beanutils使用工具包
本篇文章将深入探讨如何使用BeanUtils库,特别是通过它将Map对象转换为JavaBean的过程。 Apache Commons BeanUtils的核心功能是通过反射机制来操作JavaBean的属性。在Java编程中,JavaBean是一种遵循特定规范的类,...
- 为了提高性能,BeanUtils使用了缓存机制,比如`PropertyDescriptor`的缓存,避免了每次调用时都进行反射查找,显著提升了处理速度。 6. **模块化设计** - BeanUtils库的设计遵循了模块化原则,各个功能组件相对...
然而,需要注意的是,BeanUtils使用反射进行操作,可能会带来安全风险,因为它不进行任何类型检查。如果属性类型不匹配,可能会抛出`InvocationTargetException`。因此,使用时应确保属性类型的一致性,并对可能出现...
Apache BeanUtils库是Java开发中的...不过,由于BeanUtils使用反射,可能存在一定的性能损耗,因此在性能敏感的应用中需要谨慎使用。同时,由于其依赖于JavaBeans规范,对于非JavaBeans对象的操作可能需要额外的适配。
2. **安全问题:** BeanUtils使用反射机制,如果属性是私有的,需要谨慎使用,因为这可能会暴露对象的内部状态。 3. **性能考虑:** 尽管BeanUtils提供了很多便利,但频繁使用反射可能会带来性能损失,对于性能敏感...
BeanUtils使用 BeanUtils提供了对于符合JavaBean规范的实体类进行赋值,取值,拷贝操作的一系列方法,可以自动完成数据类型转换,方便开发者在数据交互中使用。 所有的方法都是静态方法 三个方法 1. 赋值指定成员...
1. 安全性:由于BeanUtils使用反射,可能存在安全风险,如访问私有属性或触发未预期的方法。 2. 异常处理:BeanUtils中的方法通常会抛出异常,因此在使用时需要捕获并处理可能出现的`IllegalAccessException`, `...
1. **异常处理**:由于BeanUtils使用反射,因此在操作不存在的属性或转换失败时可能会抛出异常,使用时应做好异常捕获和处理。 2. **性能考虑**:虽然BeanUtils简化了代码,但反射操作相比直接调用方法有一定的性能...
2. **异常处理**:由于BeanUtils使用了反射,所以在处理异常时要特别注意,如`IllegalAccessException`和`InvocationTargetException`。 3. **空值转换**:在进行类型转换时,如果目标类型不支持null值,可能会抛出...
- **安全性**:由于BeanUtils使用反射,可能存在安全风险,如访问未公开的属性。在生产环境中,应谨慎使用。 总结,Apache Commons BeanUtils是Java开发中的利器,它简化了JavaBean对象的处理,提高了代码的可读性...
1. **安全性**:由于BeanUtils使用反射机制,可能存在安全风险,例如公开未授权的私有属性。 2. **类型匹配**:自动类型转换可能导致数据丢失或异常,因此在处理复杂类型时需谨慎。 3. **异常处理**:在使用...
以下是一个简单的使用BeanUtils的例子: ```java import org.apache.commons.beanutils.BeanUtils; public void registerUser(User user, HttpServletRequest request) { try { // 将请求参数填充到User对象 ...
在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目中集成和应用。 Apache Commons BeanUtils库的主要目标是简化JavaBean对象的属性访问。它通过提供一系列静态...
赠送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中,使用Commons Logging进行日志记录,使得库的使用者可以根据自己的需求自由选择合适的日志系统,增加了项目的可配置性。 然而,`commons-beanutils-1.8.0`版本可能存在一些已知的安全问题,如CVE-...
总的来说,"commons-beanutils-1.8.2-src"官方源文件包是学习Java Bean操作的宝贵资源,通过研究源代码,开发者不仅可以掌握BeanUtils的使用,还能进一步提升对Java反射和类型转换的理解,从而提高开发效率和代码...
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。使用第三方工具,需要导入jar包:
- **安全性增强**:对于旧版本的安全漏洞,新版本可能会进行修复,确保在使用过程中的安全性。 在实际项目中,升级到`commons-beanutils-1.8.3`可能会带来更好的性能和稳定性,但也需要注意检查与现有代码的兼容性...