jackson自定义序列化程序或值对象?

几年后,我重新回到了后端开发。 我选择了Kotlin的Spring Boot。

  • 我想有一个以域为中心的,一般的,可重用的模型对象。
  • 对于服务调用,我希望返回特定于用例的响应,其中,有效负载进出只是特定场景的信息。 (我们可以称之为“合同优先”或“不要泄露你的胆量”)

在过去,我可能已经通过使用像Dozer这样的框架将来自可重用模型对象的信息映射到可序列化的值对象上来实现服务。

或者,我正在考虑为给定的端点注册一个自定义序列化器,例如Django Rest Framework。 (不知道这是如何工作jackson序列化通过注释)。

问题:

  • 有没有一种简单的方法来使用jackson自定义序列化器来做我想要的?
  • 还是继续使用我多年前使用的价值对象方法会更好?

根据您的使用情况,使用专用的DTO可能是一个好主意。 只要你知道,你可以从jackson得到更多的灵活性,而无需为每个场景实现自定义序列化器–Jackson Json Views现在在Spring MVC中得到了支持,而且非常有用。