AkkaJackson介绍
以下是如何在Lagom中使用Akka-Jackson serialiser的简短总结。有关更多详细信息,请参阅Jackson序列化 文档。
在Lagom中使用Akka Jackson序列化
设置Akka Jackson序列化需要三个步骤。
- 首先,创建一个自定义标记trait,例如
trait CommandSerializable
。 - 然后,确保所有使用Akka Jackson序列化类都继承了该特质: ```scala package com.example.shoppingcart.impl
object ShoppingCart { trait CommandSerializable sealed trait Command extends CommandSerializable final case class AddItem(itemId: String, quantity: Int, replyTo: ActorRef[Confirmation]) extends Command final case class RemoveItem(itemId: String, replyTo: ActorRef[Confirmation]) extends Command // More command classes }
- 最后,在`application.conf`配置文件中,注册标记使用Akka Jackson JSON序列化特质程序的绑定。
```scala
akka.actor {
serialization-bindings {
# Commands won't use play-json but Akka's jackson support.
# See https://doc.akka.io/docs/akka/2.6/serialization-jackson.html
"com.example.shoppingcart.impl.ShoppingCart$CommandSerializable" = jackson-json
}
}
模式演化
当您在Akka持久化日志中持久化事件时,在软件早期迭代中创建的事件仍必须在应用程序的未来版本中可读。随着模式的发展,您必须创建并注册数据迁移代码,以便从数据库中的日志中读取事件时,旧事件可以在在运行情况下升级。可以阅读Akka关于模式演化的文档了解详细信息。