最近关注了一下 Apache 组织的 Commons
项目,感觉里面有很多值得推荐的可高度复用的组件
(可能更多的人喜欢管他叫API).
下面推荐几个:
1,BeanUtils
(很有用):可以通过自省机制读取和设置Bean属性(包括嵌套属性),这里有必要对JavaBean
的定义做一下介绍,JavaBean就是满足一些约束的Java对象(java数据对象),有一个默认的无参构造器,数据属性被定义为私有 并且 针对每个需要暴露的私有属性 都有相应的setXXX()和getXXX()方法.
下面是一段使用BeanUtils的事例代码.
package test_1;
import java.util.Iterator;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
public class Test_1 {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
Cat c1 = new Cat();
People p1 = new People();
Dog d1 = new Dog();
try {
BeanUtils.setProperty(c1, "name", "Ketty");
BeanUtils.setProperty(c1, "age", 2);
BeanUtils.setProperty(c1, "owner", p1);
BeanUtils.setProperty(c1, "owner.name", "foo");
BeanUtils.setProperty(c1, "owner.age", 24);
System.out.println(BeanUtils.getProperty(c1, "owner.name"));
System.out.println(BeanUtils.getProperty(c1, "owner.age"));
BeanUtils.copyProperties(d1, c1);
System.out.println(BeanUtils.getProperty(d1, "owner.name"));
System.out.println(BeanUtils.getProperty(d1, "owner.age"));
Map d1Map = BeanUtils.describe(d1);
Iterator ite = d1Map.keySet().iterator();
while(ite.hasNext()){
Object key = ite.next();
System.out.println(key+" = "+d1Map.get(key));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Cat,Dog和People的结构(getXXX()和setXXX()方法都省略了)如下:
public class Cat {
private String name;
private int age;
private People owner;
public String getName() {
return name;
......
}
public class Dog{
private String name;
private int age;
private People owner;
......
}
public class People{
private String name;
private int age;
......
}
运行结果如下:
foo
24
foo
24
name = Ketty
age = 2
owner = test_1.People@1201a25
class = class test_1.Dog
2,Jexl
:Jexl是一个表达式语言,通过借鉴来自于Velocity的经验扩展了JSTL定义的表达式语言。(可以通过扩展的EL语法获取javaBean的特定属性(包括嵌套属性)
)
3,JXPath
:
jxpath定义了一个简单的XPath表达式语言的解析器.JXPath应用XPath表达式来操纵各种类型的对象包括:JavaBeans,Maps,Servlet contexts,DOM等.
分享到:
相关推荐
Apache Commons ID 和 Commons Discovery 是两个在Java开发中广泛使用的开源库,它们是Apache软件基金会的项目,为开发者提供了丰富的工具和功能。 Apache Commons ID 主要关注于生成唯一标识(ID)的功能,它提供...
apache-jakarta-commons-codec.jar apache-jakarta-commons-collections.jar apache-jakarta-commons-discovery.jar apache-jakarta-commons-email.jar apache-jakarta-commons-fileupload.jar apache-jakarta-...
apache-sanselan-incubating-0.97-bin bcel-5.2 commons-beanutils-1.9.2-bin commons-chain-1.2-bin commons-cli-1.3.1-bin commons-codec-1.10-bin commons-collections4-4.0-bin commons-configuration-1.10-bin...
jar包大小:135KB commons-validator-1.3.1.jar jar包大小:93KB commons-transaction-1.2.jar jar包大小:141KB commons-scxml-0.6.jar jar包大小:254KB commons-primitives-1.0.jar jar包大小:60KB commons-pool-1.3....
commons-attributes-2.2-src.zip commons-attributes-2.2.zip commons-beanutils-1.8.0-BETA-src.zip commons-beanutils-1.8.0-BETA.zip commons-betwixt-0.8-src.zip commons-betwixt-0.8.zip ...
Maven坐标:org.apache.commons:commons-compress:1.21; 标签:apache、commons、compress、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行...
httpcomponents-client source ,Document( commons-beanutils commons-io commons-fileupload commons-lang,commons-math,commons-validator,commons-dbutils,commons-dbcp,commons-configuration)
apache commons jar(commons所有的jar包... apache-sanselan-incubating-0.97-bin bcel-5.2 commons-beanutils-1.9.2-bin commons-chain-1.2-bin commons-cli-1.3.1-bin commons-codec-1.10-bin commons-collections4-4
1. **Apache Commons BeanUtils** - `commons-beanutils-1.9.3.jar` Apache Commons BeanUtils库是用于处理JavaBeans的工具类库。它提供了一种简单的方式来操纵JavaBean属性,无需直接调用getter和setter方法。这个...
commons-logging-1.0-javadoc.jar, commons-logging-1.0.1-javadoc.jar, commons-logging-1.0.1.jar, commons-logging-1.0.2-javadoc.jar, commons-logging-1.0.2.jar, commons-logging-1.0.3-javadoc.jar, commons-...
赠送jar包:commons-net-3.8.0.jar; 赠送原API文档:commons-net-3.8.0-javadoc.jar; 赠送源代码:commons-net-3.8.0-sources.jar; 赠送Maven依赖信息文件:commons-net-3.8.0.pom; 包含翻译后的API文档:...
Maven坐标:org.apache.commons:commons-collections4:4.1; 标签:apache、commons、collections4、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...
Maven坐标:org.apache.commons:commons-compress:1.20; 标签:apache、commons、compress、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...
在给定的压缩包文件中,`apache-commons-codec-1.4.jar`是这个库的一个版本,它包含了对BASE64以及其他编码格式的支持。 BASE64是一种用于将二进制数据转换为ASCII文本的编码方式,以便在不支持二进制传输的环境中...
commons-beanutils-1.8.0-bin.zip commons-collections-3.2.1-bin.zip commons-digester-1.8.zip commons-discovery-0.4.zip commons-email-1.1-bin.zip commons-fileupload-1.2.1-bin.zip commons-io-1.4-bin.zip ...
赠送jar包:commons-collections-3.2.2.jar; 赠送原API文档:commons-collections-3.2.2-javadoc.jar; 赠送源代码:commons-collections-3.2.2-sources.jar; 赠送Maven依赖信息文件:commons-collections-3.2.2....
Maven坐标:org.apache.commons:commons-text:1.9; 标签:apache、commons、text、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
Maven坐标:org.apache.commons:commons-math3:3.5; 标签:apache、commons、math3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...
apache-commons-codec-1.4.jar