gpt4 book ai didi

java - 如何在 Java 代码中监视/检查数据/属性流

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:05 24 4
gpt4 key购买 nike

我有一个用例,需要捕获从一个 API 到另一个 API 的数据流。例如,我的代码使用 hibernate 从数据库中读取数据,在数据处理期间,我将一个 POJO 转换为另一个并执行更多处理,然后最终转换为最终结果 hibernate 对象。简而言之,类似于 POJO1POJO2POJO3

在 Java 中,有一种方法可以让我推断出 POJO3 的属性是从 POJO1 的这个属性生成/转换而来的。我想看看可以捕获从一个模型到另一个模型的数据流的东西。这个工具可以是编译时的,也可以是运行时的,我都可以。

我正在寻找一种可以与代码并行运行并在每次运行时提供数据沿袭详细信息的工具。

最佳答案

现在我将它们称为状态,而不是 Pojos!您有一个开始位置,您可以通过不同的状态迭代和转换您的模型。最后,您有一个最终的终端状态,您希望将其持久保存到数据库中

stream(A).map(P1).map(P2).map(P3)....-> set of B

如果您使用称为事件溯源的技术,您可以推断出是的。这会是什么样子呢?不是直接将 A 映射到状态 P1 并将状态 P1 映射到状态 P2,而是将所有必要且足以将 A 映射到 P1 并将 P1 映射到 P2 等等的操作排队......如果您想随时恢复 P1 或 P2时间,它将只是排队操作的产物。只要您尚未更改数据库状态,您就可以随时向前或向后倒回。 P1,P2,P3可以作为快照。

这样您就可以为该属性重建准确的映射流程。您将对操作进行多细粒度排列,是否与属性级别一样精细,或者更细粒度取决于您。

这是一篇描述事件溯源及其工作原理的好文章:https://kickstarter.engineering/event-sourcing-made-simple-4a2625113224

更新:

我可以想到另一种技术来捕捉属性变化。您可以安装您的 Pojo-s,它与 Hibernate 用于增强 Pojos 的技术几乎相同,并且相同的技术配置文件用于跟踪。然后您可以捕获并响应 Pojo1、Pojo2、Pojo3 上的每个 setter 调用。不确定我是否会那样做......

如果 https://www.cs.helsinki.fi/u/pohjalai/k05/okk/seminar/Aarniala-instrumenting.pdf,这里有一些关于字节码检测的详细读物

关于java - 如何在 Java 代码中监视/检查数据/属性流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54813020/

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