java - Spring Boot JAXB vs Staxs vs Hand Crafted解析器的XML解析机制
问题描述
我们正在使用 Spring Boot 构建微服务,但是我们有一部分项目将负责通过 MQ 与 ESB 连接,我们的合同是 XSD。
我们的设计团队有 3 种选择:
- 使用 JAXB 生成“生成 POGO,构建编组和解组,以及生成 XML 请求和响应”
- 使用 Staxs 作为 XML 解析库“但是我们没有任何要解析的数据流”
- 手工解析器
设计团队拒绝将 JAXB 作为此问题的解决方案:
- 使用 Spring Boot 无法在 JAXB 中处理自定义验证
- JAXB 编组和解组将导致性能问题
- ESB 返回的响应将不符合 UI “但是我们的服务是无状态的,ESB 响应不得为 UI 提供服务或紧密耦合”
所以我需要知道我们可以遵循的最佳方法是什么,开发团队看到手工制作的方法非常耗时。
对于这种情况,书面模型和类的准确性不会是最准确的。
谢谢,
哈米德
解决方案
设计团队是否有任何证据证明这些说法?
- 您可以在 jaxb 之上修补许多自定义验证。可能有一些框架不能很好地与 jaxb 一起工作,但一般的“无法处理”需要一些证据或细节。
- 视实际要求而定。要求查看执行的基准。
- 我真的不明白 xml 解析的方法会如何改变这一点。
无论如何,有很多 xml 解析选项。如果没有具体/要求,很难为这种情况指定“最好的”。实际要求通常很低,所有常见的库都很好,这并不重要。
推荐阅读
- environment-variables - 在 Sentry 中,我们只有 3 个最大变量?
- powershell - 如何获取文件夹名称中编号最大的文件夹名称?
- android - 如何从firebase中检索所有数据
- android - 如何获取 Volley XML 响应的值?
- jquery - 使用 Regex 创建自定义验证规则
- json - 如何更改在爱因斯坦分析仪表板步骤中创建的公式字段的字段标签和格式?
- javascript - 如何将值从 Angular 传递到 javascript?
- c# - NetworkStream.ReadAsync 的 ReadTimeout
- node.js - 如何从节点 express 中的请求对象中获取 orderId
- xslt - 通过 XSL 以斜体打印