3

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

4

1 回答 1

2

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

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

除了这些广泛的指导方针之外,您组织包结构的方式实际上取决于您。一些项目对 API 使用一个包,而对实现使用不同的包。其他人可能会将每个子包分成子包,尽管由于服务通常应该保持很小且集中,这可能是矫枉过正。您应该以对您的项目和组织有意义的方式安排包。

于 2017-02-12T21:22:20.530 回答