具有相同类但不同包的对象的序列化在Axon中会导致错误吗?



我读了一篇博客文章,里面有这样一句话">在Axon中,有一些约束要求Event类的包结构相同。因此,即使是相同的类,如果包不同,也可能出现错误。">

因此,他建议使用多模块结构。

是真的吗?我在看参考文献,试图找到类似的东西,但是我找不到。

这一点确实是正确的,@YongD。Axon框架在序列化任何对象时,将存储序列化的格式和类型。最常存储的序列化格式是XML或JSON的byte[]。这两者中的哪一个取决于您是否配置了XStreamSerializerJacksonSerializer

在序列化的数据旁边,是类型。默认情况下,类型将是完全限定的类名和可选的修订号。如果没有完全限定的类名,序列化程序就不知道如何将数据反序列化回所需的格式。包名是FQCN的一部分,对于概念上相同的类有不同的包名可能会在反序列化时导致问题。

这就是为什么在AxonIQ提供的示例项目中,您将始终看到所有消息属于core-apiapi包或模块。有了这种分离,就可以在以后的阶段更容易地将服务提取到微服务中。

最新更新