Java Jackson自定义序列化程序还是值对象?

Java Jackson自定义序列化程序还是值对象?,java,spring,jackson,spring-boot,kotlin,Java,Spring,Jackson,Spring Boot,Kotlin,在专注于iOS几年后,我又回到了后端开发。我选择了Kotlin的弹簧靴 我希望有一个以领域为中心的、通用的、可重用的模型对象 对于服务调用,我希望返回特定于用例的响应,其中负载输入/输出只是特定场景的信息。(我们可以称之为“合同优先”或“不要泄气”) 在过去,我可能已经实现了一个服务,通过使用类似的框架将信息从可重用模型对象映射到可序列化的值对象 或者,我考虑为给定端点注册一个自定义序列化程序,如Django Rest框架所做的那样。(考虑到jackson通过注释序列化,不确定这将如何工作)

在专注于iOS几年后,我又回到了后端开发。我选择了Kotlin的弹簧靴

  • 我希望有一个以领域为中心的、通用的、可重用的模型对象
  • 对于服务调用,我希望返回特定于用例的响应,其中负载输入/输出只是特定场景的信息。(我们可以称之为“合同优先”或“不要泄气”)
在过去,我可能已经实现了一个服务,通过使用类似的框架将信息从可重用模型对象映射到可序列化的值对象

或者,我考虑为给定端点注册一个自定义序列化程序,如Django Rest框架所做的那样。(考虑到jackson通过注释序列化,不确定这将如何工作)

问题:

  • 有没有一种简单的方法可以让jackson使用自定义序列化程序来实现我想要的功能
  • 还是继续使用我多年前使用的价值对象方法更好
根据您的用例,使用专用DTO可能是一个好主意。正如您所知,您可以从Jackson获得更大的灵活性,而无需为每个场景实现自定义序列化程序——这非常有用

我想说这个问题应该在要点中的两个问题中的@luboskrnac上提出,我认为第一个问题是一个非常典型的问题。也许我可以把第二个移到StackExchange。