【发布时间】:2021-08-12 05:18:47
【问题描述】:
我看了一篇博文,里面有这样一句话 "在 Axon 中,有一些约束要求事件类的包结构相同。 所以即使是同一个类,如果包不同,也会出现错误。”
因此,他建议使用多模块结构。
这是真的吗?我正在查看参考资料并试图找到类似的东西,但我找不到。
【问题讨论】:
我看了一篇博文,里面有这样一句话 "在 Axon 中,有一些约束要求事件类的包结构相同。 所以即使是同一个类,如果包不同,也会出现错误。”
因此,他建议使用多模块结构。
这是真的吗?我正在查看参考资料并试图找到类似的东西,但我找不到。
【问题讨论】:
这点确实没错,@YongD。
Axon Framework 在序列化任何对象时,将存储序列化的格式和类型。最常存储的序列化格式是 XML 或 JSON 的 byte[]。两者中的哪一个取决于您是否配置了XStreamSerializer或JacksonSerializer。
所以在序列化数据旁边,我们有类型。默认情况下,类型是完全限定的类名和可选的修订号。如果没有完全限定的类名,序列化程序将不知道如何将数据反序列化回所需的格式。包名是 FQCN 的一部分,概念上相同的类具有不同的包名可能会导致反序列化时出现问题。
这就是为什么在 AxonIQ 提供的示例项目中,您总是会看到所有消息属于 core-api 或 api 包或模块。已经有这种分离将允许在稍后阶段更容易地将服务提取到微服务中。
【讨论】: