Axon 将事件存储为 XML 而不是 JSON

Axon stores events as XML instead of JSON

我是 Axon 框架的新手,我想配置 Axon 以便将事件存储为 JSON。 我正在使用 Spring-Boot,并且根据文档,我在 .properties 文件中设置了一些 key/value

我希望看到存储为 JSON 的事件,但我一直在 MongoDB 事件存储的 serializedPayload 中看到 XML。 我想我已经正确配置了序列化器,但显然我做错了什么

请注意,在调试应用程序时,JacksonSerializer class 似乎从未被调用,相反 XStreamSerializer class 被调用甚至是我的 key/value 配置。 所以我需要了解为什么我的 jackson configuraton 没有调用正确的序列化程序

您必须配置 MongoEventStorageEngine 才能使用您想要的 Serializer

查看它的 Builder(特别是 javadoc),您可以看到它提供了一个 snapshotSerializer 和一个 eventSerializer 方法,而 javadoc 指出它们都默认为 XStreamSerializer.

如果您在配置方面需要帮助,我可以将您指向 mongo-axon-example,您可以在其中查看已配置的项目和 运行。 该示例未使用 Jackson,但配置它应该很容易 here.

即使文档似乎没有提到它,在 .properties 文件中添加 key/value 也是不够的。您还需要将 JacksonSerializer 添加到 MongoEventStorageEngine,如下所示: