Axon使用PostgreSQL来存储事件,并将事件按照领域聚合组织起来。每个事件都具有一个唯一标识符和一些元数据,例如时间戳和聚合类型。
在事件存储中,事件的负载被存储为序列化的字节流。在Axon中,可以通过使用Serializer
类来反序列化负载。下面是一个例子:
public class MyEventHandler {
private Serializer serializer;
public MyEventHandler(Serializer serializer) {
this.serializer = serializer;
}
@EventHandler
public void handle(MyEvent event, @MetaData("aggregateId") String aggregateId) {
byte[] payloadBytes = event.getPayload();
MyPayload payload = serializer.deserialize(payloadBytes, MyPayload.class);
// Do something with the payload
}
}
在上面的例子中,MyEvent
是一个Axon事件,并包含事件负载以及元数据。MyPayload
是一个自定义类型,表示负载的反序列化后的形式。Serializer
是一个负责序列化和反序列化的接口。
在事件处理程序中,可以使用@MetaData
注解和一个字符串参数来获取元数据。在这个例子中,元数据表示聚合根的标识符。
下一篇:Axon4 - 标准异常处理机制