深入解析:Apache Commons Java开源工具类的全方位介绍

更新:11-18 民间故事 我要投稿 纠错 投诉

大家好,今天来为大家解答深入解析:Apache Commons Java开源工具类的全方位介绍这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

1、BeanUtils

提供了对JavaBean的各种操作,如对象、属性复制等。

//1.克隆对象

//创建一个新的普通Java Bean 用作克隆对象

公共类人{

私有字符串名称="";

私人字符串电子邮件="";

私有整数年龄;

//省略set和get方法

}

//创建另一个Test类,在main方法中添加以下代码:

导入java.lang.reflect.InitationTargetException;

导入java.util.HashMap;

导入java.util.Map;

导入org.apache.commons.beanutils.BeanUtils;

导入org.apache.commons.beanutils.ConvertUtils;

公开课测试{

/**

* @参数参数

*/

公共静态无效主(字符串[] args){

人人=new Person();

person.setName("汤姆");

人.setAge(21);

尝试{

//克隆

人person2=(Person)BeanUtils.cloneBean(person);

System.out.println(person2.getName()+""+person2.getAge());

} catch (IllegalAccessException e) {

e.printStackTrace();

} catch (InstantiationException e) {

e.printStackTrace();

} catch (InitationTargetException e) {

e.printStackTrace();

} catch (NoSuchMethodException e) {

e.printStackTrace();

}

}

}

//原理也是通过Java的反射机制来完成的。

//2. 将Map对象转换为Bean

//这个Map对象的key必须和Bean的属性对应。

映射map=new HashMap();

map.put("名字","汤姆");

map.put("电子邮件","汤姆@");

map.put("年龄","21");

//将map转换为Person对象

人人=new Person();

BeanUtils.populate(人,地图);

//通过上面这行代码,person属性已经有了上面分配的值。

//将Bean转换为Map对象,如下:

地图map=BeanUtils.describe(person)

2.Betwixt

XML 和Java 对象之间的转换。

//1.将JavaBean 转换为XML 内容

//创建一个新的Person类

公共课人{

私有字符串名称;

私有整数年龄;

/** 需要允许通过反射创建bean */

公共PersonBean() {

}

公共PersonBean(字符串名称, int 年龄) {

this.name=名称;

this.age=年龄;

}

//省略set和get方法

公共字符串toString() {

return "PersonBean[姓名="" + 姓名+ "",年龄="" + 年龄+ ""]";

}

}

//创建另一个WriteApp类:

导入java.io.StringWriter;

导入org.apache.commons.betwixt.io.BeanWriter;

公共类WriteApp {

/**

* 创建一个示例Bean 并将其转换为XML。

*/

公共静态最终无效主(字符串[] args)抛出异常{

//首先创建一个StringWriter,我们将它写成一个字符串

StringWriter 输出写入器=new StringWriter();

//这里只是将Bean写成片段

//所以如果我们想要完整的XML内容,我们应该写header格式

输出写入器.write("");

//创建一个BeanWriter 来写入我们准备好的流

BeanWriter beanWriter=new BeanWriter(outputWriter);

//配置之间

//更多细节请参考java docs或最新文档

beanWriter.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);

beanWriter.getBindingConfiguration().setMapIDs(false);

beanWriter.enablePrettyPrint();

//如果这里没有传入XML的根节点名称,Betwixt会猜测它是什么。

//但是让我们使用示例bean 名称作为根节点

beanWriter.write("person", new PersonBean("约翰·史密斯", 21));

//输出结果

System.out.println(outputWriter.toString());

//Betwixt 写入片段而不是文档,因此不要自动关闭写入器或流。

//但这只是一个例子,不会做更多的事情,所以可以关闭

输出写入器.close();

}

}

//2.将XML 转换为JavaBean

导入java.io.StringReader;

导入org.apache.commons.betwixt.io.BeanReader;

公共类ReadApp {

公共静态最终无效主(字符串参数[])抛出异常{

//首先创建一个XML。由于这只是一个示例,因此我们硬编码了一段XML 内容。

StringReader xmlReader=新StringReader(

“25詹姆斯·史密斯”);

//创建BeanReader

BeanReader beanReader=new BeanReader();

//配置阅读器

beanReader.getXMLIntrospector().getConfiguration().setAttributesForPrimitives(false);

beanReader.getBindingConfiguration().setMapIDs(false);

//注册bean,以便betwixt知道XML将被转换成什么Bean

beanReader.registerBeanClass("person", PersonBean.class);

//现在我们解析XML

PersonBean person=(PersonBean) beanReader.parse(xmlReader);

//输出结果

System.out.println(person);

}

}

3.Codec

提供了一些公共编解码器实现,例如Base64、Hex、MD5、Phonetic和URL等。

4.Collections

java.util的扩展封装对于数据处理来说相当灵活。

org.apache.commons.collections Commons Collections 定制的一组通用接口和工具类

org.apache.commons.collections.bag 一组实现Bag 接口的类

org.apache.commons.collections.bidimap 一组实现BidiMap 系列接口的类

org.apache.commons.collections.buffer 一组实现Buffer 接口的类

org.apache.commons.collections.collection 一组实现java.util.Collection 接口的类

org.apache.commons.collections.comparators 一组实现java.util.Comparator 接口的类

org.apache.commons.collections.functors 由Commons Collections 定制的一组函数类

org.apache.commons.collections.iterators 一组实现java.util.Iterator 接口的类

org.apache.commons.collections.keyvalue 一组实现集合和键/值映射的类

org.apache.commons.collections.list 一组实现java.util.List 接口的类

org.apache.commons.collections.map 一组实现Map 系列接口的类

org.apache.commons.collections5.compress.set 一组实现Set 系列接口的类

5.Compress

commons compress 中的打包和压缩库。

6.Configuration

用于帮助处理配置文件,支持多种存储方式。

属性文件XML 文档属性列表文件(.plist)JNDIJDBC 数据源系统属性Applet 参数Servlet 参数

7.DBCP

(数据库连接池)是依赖于Jakarta commons-pool对象池机制的数据库连接池。 Tomcat的数据源使用DBCP。

8.DbUtils

Apache组织提供的资源JDBC工具类库。它是对JDBC 的简单封装。它重新封装了传统的操作数据库的类,可以将结果集转换为List。并且不影响程序的性能。文章转载自飞潮大神

DbUtils类:启动类

ResultSetHandler接口:转换类型接口

MapListHandler类:实现类,将记录转换为List

BeanListHandler类:实现类,将记录转换为List,这样记录就是JavaBean类型的对象

Qrery Runner类:执行SQL语句的类

9.Email

提供的一个开源API是对javamail的封装。

10.FileUpload

java web文件上传功能。

11.HttpClient

是一个基于HttpCore实现的兼容HTTP/1.1的HTTP客户端。它提供了一系列可重用的客户端身份验证、HTTP 状态保留和HTTP 连接管理模块。

12.http://IO

扩展为http://java.io 操作文件非常方便。

13.Lang

主要是一些公共工具的集合,比如对字符、数组等的操作。

14.Logging

提供了Java日志接口,既轻量级,又不依赖于特定的日志实现工具。

导入org.apache.commons.logging.Log;

导入org.apache.commons.logging.LogFactory;

公共类CommonLogTest {

私有静态Log log=LogFactory.getLog(CommonLogTest.class);

//日志打印

公共静态无效主(字符串[] args){

log.error("错误");

log.debug("调试");

log.warn("警告");

log.info("信息");

log.trace("跟踪");

System.out.println(log.getClass());

}

}

15.Validator

通用验证系统,该组件提供了客户端和服务器端数据验证框架。

1. 验证日期

//获取日期验证

DateValidator 验证器=DateValidator.getInstance();

//验证/转换日期

日期fooDate=validator.validate(fooString, "dd/MM/yyyy");

如果(fooDate==null){

//错误不是日期

返回;

}

2. 表达验证

//设置参数

布尔大小写敏感=false;

字符串正则表达式1="^([A-Z]*)(?-)([A-Z]*)*$"

字符串正则表达式2="^([A-Z]*)$";

String[] 正则表达式=new String[] {regex1, regex1};

//创建验证

RegexValidator 验证器=new RegexValidator(regexs, caseSensitive);

//验证返回布尔值

boolean valid=validator.isValid("abc-def");

//验证返回字符串

字符串结果=validator.validate("abc-def");

//验证返回数组

String[] groups=validator.match("abc-def");

3.在配置文件中使用验证

类名="org.apache.commons.validator.TestValidator"

方法="验证必需"

methodParams="java.lang.Object, org.apache.commons.validator.Field"/

添加姓名验证。

类名="org.apache.commons.validator.TestValidator"

方法="验证必需"

methodParams="java.lang.Object, org.apache.commons.validator.Field"/

4.验证类

摘自org.apache.commons.validator.RequiredNameTest

//加载验证配置文件

InputStream in=this.getClass().getResourceAsStream("validator-name-required.xml");

ValidatorResources 资源=new ValidatorResources(in);

//这是我自己创建的一个bean。我这里省略了。

名称名称=新名称();

验证器validator=new Validator(resources, "nameForm");

//设置参数

validator.setParameter(Validator.BEAN_PARAM, 名称);

地图结果=空;

//核实

结果=validator.validate();

if (results.get("firstName")==null) {

//验证成功

} 别的{

//有错误int error=((Integer)results.get("firstName")).intValue();

用户评论

無極卍盜

终于找到一篇介绍 Apache Commons 的完整文章了!

    有6位网友表示赞同!

?亡梦爱人

我一直用的 Java,但没太了解 Commons,现在正好来补一补。

    有15位网友表示赞同!

像从了良

感觉做开发少不了用到一些工具类,Commons 就很管用啊!

    有10位网友表示赞同!

矜暮

以前写 Java 代码总是遇到各种小问题,如果早点学会用 Commons 早解决很多麻烦了。

    有17位网友表示赞同!

半梦半醒半疯癫

这篇总结是不是很有帮助?可以让我很快上手 Apache Commons.

    有7位网友表示赞同!

素颜倾城

学习一下 Apache Commons 可以提高开发效率吗?值得好好看看这篇介绍。

    有14位网友表示赞同!

命里缺他

Apache Commons 确实好用,以前我遇到一些问题的时候也经常查它用的代码啊!

    有17位网友表示赞同!

ˉ夨落旳尐孩。

我一直想深入了解 Apache Commons,这篇文章正好可以解答我的疑惑了。

    有16位网友表示赞同!

青墨断笺み

做 Java 开发的,了解 Apache Commons 是必不可少的吧?这篇介绍看过后就更有底气了!

    有11位网友表示赞同!

安之若素

看到标题我就很心动,终于有人整理全面的 Apache Commons 介绍了!

    有11位网友表示赞同!

念旧情i

希望能在这篇文章里找到自己平时经常要用到的 Commons 工具类。

    有15位网友表示赞同!

温柔腔

Apache Commons 是开源的,太棒了!可以自由地学习和使用,非常方便。

    有6位网友表示赞同!

北朽暖栀

这篇介绍是不是包含了 Apache Commons 的最新版本信息呢?

    有8位网友表示赞同!

如梦初醒

希望这篇文章能给刚开始学习 Java 的朋友带来一些帮助!

    有13位网友表示赞同!

命硬

Java 开发的同学们应该都应该关注 Apache Commons 吧!

    有10位网友表示赞同!

余笙南吟

我以前用过一些 Commons 的工具类,但这篇介绍还是有很多新内容,挺不错的。

    有17位网友表示赞同!

炙年

这篇介绍应该能让我想得更加全面地了解 Apache Commons 这个工具库。

    有14位网友表示赞同!

还未走i

Apache Commons 真的是 Java 开发者的好帮手!

    有19位网友表示赞同!

一样剩余

现在学习Java,Apache Commons 就是必不可少的工具了

    有16位网友表示赞同!

月下独酌

期待了解更多关于 Apache Commons 的案例和使用技巧!

    有10位网友表示赞同!

【深入解析:Apache Commons Java开源工具类的全方位介绍】相关文章:

1.蛤蟆讨媳妇【哈尼族民间故事】

2.米颠拜石

3.王羲之临池学书

4.清代敢于创新的“浓墨宰相”——刘墉

5.“巧取豪夺”的由来--米芾逸事

6.荒唐洁癖 惜砚如身(米芾逸事)

7.拜石为兄--米芾逸事

8.郑板桥轶事十则

9.王献之被公主抢亲后的悲惨人生

10.史上真实张三丰:在棺材中竟神奇复活

上一篇:每日时尚搭配:2024年4月7日五行服饰指南 下一篇:深入浅出前端开发:React系列教程之TypeScript基础篇