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

问题描述:

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

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

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

除了这些广泛的指导原则之外,组织包结构的方式真的取决于您。有些项目使用单个包装进行API,而另一个则使用不同的包装进行实施。其他人可能会将每一个分成不同的子包,但由于服务通常应该保持非常小且集中,这可能是矫枉过正的。您应该以对您的项目和组织有意义的方式来安排软件包。

+0

非常感谢,这很有道理! –