浏览 7320 次
锁定老帖子 主题:体验jibx的灵活和快速
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-26
jibx又一个不错的xml绑定工具,随着这段时间的使用,感觉越来越随心应手了。和jaxb一样,都是属于xml绑定工具。不同于jaxb,jibx使用java字节码enhance技术,而jaxb更多在于源代码生成技术。jibx的工作主要在于前期,也就是进行字节码绑定,这一部分基本上都是在编译器完成的。在运行期,不需要任何的配置,由于字节码已经嵌入java类中。而jaxb更多在于运行期绑定,通过元数据或者xsd文件进行解析绑定。相对于jaxb来说,jibx更加的快速以及灵活。不过,前期的编译工作还是需要花费一点时间熟悉。下面通过一个简单的例子来说明,例子是其官方自带的。 首先从网上下载jibx包 http://jibx.sourceforge.net/ 为其主要的官网。 假设有两个类Person和Customer 使用最简单的方式声明: java 代码
xml 数据结构如下: xml 代码
为了匹配相应的数据,jibx需要相应的映射文档,用于匹配java类和xml数据,如下: xml 代码
当然手写是比较费力的,还好,jibx工具提供了相应的生成方法:jibxtools包提供了BindingGenerator类,用于生成相应的xml文件 可以直接在cmd下执行:java -jar jibxtools.jar -f bind.xml Customer 如果没有复杂的属性,如枚举和数组,直接就可以生成了。 现在开始编译期的最后一步:绑定类 同样可以使用cmd的方式或者ant task来执行 java -jar jibx-bind.jar binding.xml 主要的执行类为org.jibx.binding.Compile,也可以直接运行此类 如果你有java反编译器,可以查看相应的类文件已经更改,增加了相应的jibx信息,并且增加了相应的jibx_binding*_access类。 在运行期,你只需要使用以下的代码来进行处理就行了,由于jibx 使用最新的xml pull技术,执行的速度还是比较快的。 java 代码
如果你的xml数据结构比较固定,可以考虑使用。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-26
感觉是为了保持javacode的稳定性。这是它的好处。
javabean不变,当schema变的时候改配置文件就可以了,不会影响java code。不然像jaxb就要重新generate java code了。 |
|
返回顶楼 | |
发表时间:2007-02-28
如果 java类比较稳定的话,采用绑定是比较节省开发时间的,毕竟每次用dom去解析比较的累
|
|
返回顶楼 | |
发表时间:2007-02-28
这么多代码和配置还能算快速了???个人觉得快速这个词完全是java最滥用的词之一。
跟.net学学,用Attribute和XmlSerilizer才几行而已,好像就2行足够了。。。(默认的情况了Attribute都可以省略) |
|
返回顶楼 | |
发表时间:2007-02-28
快速是相对而言的,又灵活,又想快速,至少在java的世界里,这也算可以的。最快的方法莫过于直接序列化,java也提供了不错的工具,XStream就不错,没有配置,代码也很少:
# InputStream in = XStreamDataReader.class.getResourceAsStream("data.xml"); # Customer bo = (Customer)xstream.fromXML(in); |
|
返回顶楼 | |
发表时间:2007-03-24
个人感觉太复杂了。
|
|
返回顶楼 | |
发表时间:2007-03-24
castor
|
|
返回顶楼 | |