gpt4 book ai didi

java - 在 Apache Camel 中修改主体的最佳方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:19 26 4
gpt4 key购买 nike

我想知道在给定路由中对消息正文进行简单转换的最佳解决方案是什么。正文将是 CSV,如果满足某些条件,我想修改一些字段。在开始编写自己的处理器之前,我想知道是否有任何内置功能可供我使用。

我一直在研究 Camel 支持的脚本语言,但没能找到一个好的例子。我相信这可以通过使用 Groovy 或其他脚本语言的表达式来完成,但我需要一些指导。

谁能帮帮我?

谢谢!

最佳答案

实际上有两个不同的东西。以结构化方式访问(解码/编码)CSV 数据,然后执行实际逻辑来转换数据。

您可以使用 CSV数据格式(或 flatpack )将您的 CSV 数据放入一个列表列表中,您可以在普通 Java bean(或 groovy,如果需要)中轻松操作。然后您可以获取结果并通过相同的组件再次将其转换为 CSV。

如果您有大型 CSV 结构和非常复杂的转换 - 您可能希望将 CSV 文件映射到对象列表而不是字符串列表的列表。您可以为输入和输出数据定义类,然后使用 Bindy 将这些类绑定(bind)到 CSV 行。成分。然后,在中间你只需要处理映射 java 对象的字段,这是相当简单的。如果您想深入了解将一个 Java 对象映射到另一个对象的框架,您可以查看 Dozer。这是相当不错的(但在大多数情况下有点矫枉过正)。

如您所述,您可以使用 groovy 或类似工具进行实际映射。它应该是相当直截了当的,尽管我不知道有多少关于这个主题的例子。

<transform>
<groovy> response.f1 = request.f2 </groovy>
</transform>

您可以在其中获得对象请求和响应。

另一种方法是使用更大的框架 Smooks .它处理许多不同数据格式之间的解析和映射。它不是 Camel 的一部分,但 Smooks 内置了 Camel 支持并且是开源的。如果您只做一些较小的映射,可能会有点矫枉过正,但如果您一遍又一遍地处理复杂的映射场景,这可能是值得的。

关于java - 在 Apache Camel 中修改主体的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18325765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com