binding - 如何使用 jacksoon-dataformat-yaml 高效管理 Java 中的 YAML 文档?
问题描述
我正在寻找有关如何提高从 Java 应用程序合成 docker-compose.yml 文件的效率的建议。我想探索使用 Java 绑定样式机制来做到这一点的可能性(类似于 JAXB 对 XML 的支持)。
这应该是人们可能想做的一件非常普遍的事情。然而,我无法找到一种有原则且定义明确的方法的描述。
使用 XML,我会将 XSD 模式提供给 JAXB 绑定工具,该工具将为我生成相应的 Java 类层次结构以及 [un-] 编组代码。然后,我将在内存中填充 Java 类并将它们序列化为 XML 文件/流。
以下是我的问题:
有没有 YAML 模式这样的概念?互联网搜索将我引向了多个方向,但似乎都没有提供对这个主题的原则性处理。
有人看过 docker-compose 格式的已发布模式吗?我是否必须自己为此处定义的文本规范编写一个:(https://docs.docker.com/compose/compose-file/)?
jackson yaml 工具可以导入 YAML 架构并生成 Java 类层次结构吗?
jackson yaml 工具的示例表明,一旦我有了类层次结构,我就可以自己编写编组代码,这非常简单,但它似乎比使用 JAXB 编组器更费力。
对上述几点的任何建议将不胜感激。
解决方案
我想没有人对我有一个好的答案,所以我以次优的方式解决了这个问题,但仍然比采用某种启发式方法更好:
我创建了一个简单的 XML 模式,其中包含 docker_compose YAML 规范中存在的数据子集。这是我的过程中唯一接近现实的步骤,而不是完全正确的实现。架构不完整,仅包含我关心的内容。当我开发对其他 docker_compose 选项的需求时,我可能会在以后对其进行扩展。
我正在使用 JAXB 来建立从这个近似模型到 Java 类层次结构的绑定。
我以编程方式使用数据填充了这个层次结构中的类,然后使用 jackson yaml 插件来编组包含我需要的内容的 docker_compose.yml 文件。
这种方法非常次优,但似乎有效。仍然希望我能做得更好,但现在必须适应这个近似值。更多建议表示赞赏。
推荐阅读
- javascript - 测试 Node.js 数据处理
- mongodb - 如何在 MongoDB 中加入两个集合 A 和 B?
- azure - 我应该使用哪种机器人解决方案,Botframework 或 Composer 工具或 Power Virtual Agent?Power 虚拟代理成本高吗?
- json - 使用 jq 连接 JSON 文件的目录
- javascript - JQuery 使用 replaceWith 通过选择替换输入
- javascript - Chrome 在我的网站上重新加载时跳到底部的问题
- python - 在列表列表中比较列表值的最佳方法是什么?
- c# - 如何在 ASP.NET 样板中使用 EFCore.BulkExtensions
- python - 将字节字典转换为 JSON
- r - 使用 VennDiagram 在 RStudio 查看器中查看 venn.diagram(不仅仅是写入文件)?