我应该在哪里定义Lagom中的自定义(de)序列化器?

时间:2017-02-11 00:46:04

标签: lagom

我开始在Java中使用Lagom并且需要编写自定义(de)序列化程序。我已经阅读了文档并理解了NegotiatedSerializer,MessageSerializer,SerializerFactory等的角色。我不明白的是在哪个包中定义类是规范的。我查看了Chirper示例,看到各种* API模块中的* Service接口旁边经常有具体的模型定义,但没有自定义序列化器的示例。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

消息的序列化器(请求主体,响应主体和发布到主题的消息)应该是服务的impl模块的一部分。序列化程序需要由服务的客户端和服务实现本身使用。这使它们成为服务接口或API的一部分。

应在每个服务的{{1}}模块中定义持久性的序列化程序(命令和回复,持久性事件,实体状态)。它们是内部实施的细节,不应暴露给客户。

除了这些广泛的指导方针外,您组织包装结构的方式也取决于您。有些项目为API使用单个包,为实现使用不同的包。其他人可能会将每个人分成子包,但由于服务通常应该保持相当小和专注,这可能是过度的。您应该以对项目和组织有意义的方式安排包。