当前位置:  开发笔记 > 编程语言 > 正文

Java绑定与手动定义类

如何解决《Java绑定与手动定义类》经验,为你挑选了1个好方法。

我有一个XML模式,我需要为其创建Java类.它不是一个特别大的模式,我会说它将导致大约20个类.我试图权衡是否使用自动绑定程序(如JAXB或JiBX中提供的程序)或者是否手动编写我自己的类并使用XStream之类的内容进行编组/解组.

编写自己的类而不是使用绑定程序有什么优点/缺点.

另外,我使用绑定程序,我永远与之绑定.例如,如果我使用JAXB的绑定编译器来创建类,我是否必须使用JAXB进行所有编组/解组?

ps我看过以下关于XML绑定/序列化的问题,这些问题很有用,但没有完全回答我的问题: xml-serialization-in-java和java-xml-binding



1> 小智..:

我不认为你的问题有明确的答案.但我可以给你一些来之不易的建议.这里有一些要考虑的事情:

    编写编组和无法编写代码非常耗时,尤其是第一次.

    您将不得不花费大量时间来学习DOM库的细微差别(Xerces或其等价物).

    有很多重复,所以你最终会被编写一些帮助类.

    您需要进行大量的单元测试,以确保您已经涵盖了可选元素和属性领域的所有基础.

看一下这个列表很容易说"这就是JAXB为我做的".多年来我已经完成了这项工作,我会说JAXB为您节省了大量的时间和精力,尤其是Java 5/6中JAXB的最新版本.

但是,如果你选择JAXB,我们已经学到了一个很难以传达的方法:

***不要让JAXB生成的类泄漏到您的应用程序中.

正如您在问题中所说,这将整个应用程序与JAXB的工作方式联系起来.如果必须更换JAXB(将来有很多理由可以解决这个问题)那么你将面临一项充满挑战和痛苦的任务(相信我,我们已经完成了,我们永远不会进入位置再次).

现在我们总是将JAXB生成的类隐藏在外观或工厂后面,从JAXB类映射到具有所需行为的我们自己的域POJO.当我们做JDBC时,我们会想到JAXB; JAXB只是另一种数据源,是从我们的域POJO获取数据的另一种方式.领域POJO是秘诀,我们控制它们的编码方式以及它们的使用方式.JAXB只是编组和解组的工具.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有