`
步行者
  • 浏览: 170190 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

随笔---Apache Commons

阅读更多

最近关注了一下 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.jar和commons-discovery-0.2.jar

    Apache Commons ID 和 Commons Discovery 是两个在Java开发中广泛使用的开源库,它们是Apache软件基金会的项目,为开发者提供了丰富的工具和功能。 Apache Commons ID 主要关注于生成唯一标识(ID)的功能,它提供...

    apache-jakarta旗下的所有开源项目jar文件

    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 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.0-bin commons-configuration-1.10-bin...

    apache-commons-codec-1.4.jar和sun.misc.BASE64Encoder.jar

    在给定的压缩包文件中,`apache-commons-codec-1.4.jar`是这个库的一个版本,它包含了对BASE64以及其他编码格式的支持。 BASE64是一种用于将二进制数据转换为ASCII文本的编码方式,以便在不支持二进制传输的环境中...

    apache commons 常用jar包 commons-validator commons-transaction commons-lang等

    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....

    Apache Commons 所有包最新版本 含SRC (6/7)

    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 ...

    commons-compress-1.21-API文档-中文版.zip

    Maven坐标:org.apache.commons:commons-compress:1.21; 标签:apache、commons、compress、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    apache-commons源码及jar文件

    Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行...

    apache-commons-apis

    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包,从官网下载提供.zip

    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

    apache-collections-commons-collections-3.1.jar.zip

    标签:apache-collections-commons-collections-3.1.jar.zip,apache,collections,commons,collections,3.1,jar.zip包下载,依赖包

    commons-net-3.8.0-API文档-中文版.zip

    赠送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文档:...

    commons-logging.jar

    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-...

    commons-beanutils、commons-collections、commons-collections等常用jar 包下载

    1. **Apache Commons BeanUtils** - `commons-beanutils-1.9.3.jar` Apache Commons BeanUtils库是用于处理JavaBeans的工具类库。它提供了一种简单的方式来操纵JavaBean属性,无需直接调用getter和setter方法。这个...

    commons-collections4-4.1-API文档-中文版.zip

    Maven坐标:org.apache.commons:commons-collections4:4.1; 标签:apache、commons、collections4、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 ...

    commons-compress-1.20-API文档-中文版.zip

    Maven坐标:org.apache.commons:commons-compress:1.20; 标签:apache、commons、compress、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化...

    commons-collections-3.2.2-API文档-中文版.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....

    commons-beanutils-1.8.0-bin commons-collections-3.2.1-bin commons-digester-1.8 commons-lang-2.4-bin

    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 ...

    commons-text-1.9-API文档-中英对照版.zip

    Maven坐标:org.apache.commons:commons-text:1.9; 标签:apache、commons、text、中英对照文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

    commons-math3-3.5-API文档-中文版.zip

    Maven坐标:org.apache.commons:commons-math3:3.5; 标签:apache、commons、math3、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,...

Global site tag (gtag.js) - Google Analytics