[url]http://wangwenjunhi.iteye.com/blog/567219[/url]
好像在2010年一月初的时候刚刚发布了0.9版本,这个框架的主要作用就是用来进行读取配置文件(xml)的,但是和以前我们常用的有所不同,他是直接用java的对象和xml进行映射,在我们以前读取xml的时候,哪怕是使用了jdom,dom4j,xpath等的相关API,获得字段仍然失去了他本来的属性,比如说他之前是一个integer类型的,我们获取到的一律都是string类型的,如果配置文件数量比较多,配置项比较多,我们还要垒一些看似一样的代码。
一:概要
Xmappr是一个使用纯Java编写的处理XML的类库,提供一种非常简单的方式来处理XML,可以将任意XML与Java类相映射。
主要特性:
映射通过注释或外部配置实现
可以缓存未映射元素
保持XML元素顺序
可以自定义类型转换器
完全支持XML命名空间
线程安全(设计用于多线程使用)
不包含任何依赖关系
整个类库大小只有80kb
采用BSD许可
二:示例
Xmappr的使用非常简单,更为详细的API和说明可以直接查看他的官方文档
[url]http://www.theserverside.com/news/thread.tss?thread_id=59078[/url],首先我们引入jar文件,注意你的jdk版本需要是6.0以上的才可以,如果不是6.0的需要从sun的官网下载xmlstream相关的jar。直接来代码演示:
<?xml version="1.0" encoding="UTF-8"?>
<root a="2.2">
some text
<node>123</node>
</root>
上述的是一段配置文件。
package com.neusoft.xmappr;
import org.xmappr.Attribute;
import org.xmappr.Element;
import org.xmappr.RootElement;
import org.xmappr.Text;
@RootElement
public class Root {
@Attribute
public float a;
@Element
private Integer node;
@Text
public String text;
/**
* @return the a
*/
public float getA() {
return a;
}
/**
* @param a the a to set
*/
public void setA(float a) {
this.a = a;
}
/**
* @return the node
*/
public Integer getNode() {
return node;
}
/**
* @param node the node to set
*/
public void setNode(Integer node) {
this.node = node;
}
/**
* @return the text
*/
public String getText() {
return text;
}
/**
* @param text the text to set
*/
public void setText(String text) {
this.text = text;
}
}
上述是配置文件对应的javabean,好了看一下我们的测试代码
@Test
public void testAnnotaionTypeXmappr() throws FileNotFoundException {
Xmappr xmappr = new Xmappr(Root.class);
FileReader reader = new FileReader(XML_PATH);
Root root = (Root) xmappr.fromXML(reader);
Assert.assertEquals(2.2f, root.getA());
}
程序运行没有任何问题,是不是和以前的方式进行xml读取相比较方便了很多。详细的说明请直接查看官方文档,在这里只做一个引子,主要是想说明一下annotation带给程序的一些方便。