java - JAXB 和 XSLT 性能

标签 java xslt jaxb marshalling unmarshalling

我有以下代码来执行从一个 JAXB 注释对象到另一个 JAXB 注释对象的 XSLT 转换。在这种情况下,性能真的很差吗?它将 JAXB 对象编码为 XML,将其转换为另一个 XML 并解码,还是这里有更好的技巧?

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer(new StreamSource(mapping.getInputStream()));
JAXBResult result = new JAXBResult(JaxbUtils.getJAXBContext(CalypsoUploadDocument.class));
transformer.transform(new JAXBSource(JaxbUtils.getJAXBContext(CalypsoUploadDocument.class), uploadMessage),result);

return result.getResult();

最佳答案

如果使用 Java 6(我的生产经验基于 Oracle JDK),这是我们也采用过的有效方法。性能相当不错。一个小的改进是使用模板实例。

另一方面,如果您的应用程序有一个或只有几个转换并且转换本身不会随时间改变,我不推荐这种方法。然后直接方法要快得多(java 实例 -> java 映射 -> java 实例)

关于java - JAXB 和 XSLT 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13606872/

相关文章:

c# - XslTransform 与 xml 样式表

java - 无法使用 JAXBElement 编码(marshal) XmlJavaTypeAdapter?

java - Linux下Java的虚拟内存使用率,使用的内存过多

database - 与 Web 应用程序一起使用的最佳关系数据库管理系统 (DBMS) 是什么?

java - 我使用 setOnMouseEntered 并且有一些异常(exception)

javascript - 从 javascript 调用 XSLT

xslt - XSLT在同一路径上添加元素

java - Firebase 查询 Or'ing whereEqualTo 以获得可能值的列表

android - DexException 在 Android 中定义了多个 dex 文件

java - 在两个不同文件中使用替换的 jaxb 中的非法注释异常