【发布时间】:2011-07-08 18:59:29
【问题描述】:
我正在一个应用程序中工作,我们需要以 XML 格式保存对象,并在需要时加载它们。为此,我使用 JAXB 将 XML 编组和解组回 Java 类。
我的问题是有时我必须更改 Java 模型(通过添加、重命名或删除属性),结果,我将保存不兼容的 XML,无法绑定回新的类表单。
为了解决这个问题,每次我必须进行更改时,我都会复制一个新包(以其版本命名)下的所有类并应用请求的更改。在保存 XML 时,我会保存它的版本,这样我就可以决定 JAXB 应该扫描哪个包来解组这个 XML。
我的问题是,有没有其他方法可以使用 JAXB 实现向后和向前兼容性?如果没有,还有其他技术可以支持吗?
【问题讨论】:
-
我担心模型结构将来可能会发生变化,而我现在看到的唯一使用旧版本的方法就是保留旧类,这看起来不太好也不实用.你能建议处理这种情况的最佳方法是什么吗?我需要以 XML 格式保存对象并能够再次加载它...
标签: java jaxb compatibility backwards-compatibility