java - Jackson 自定义序列化程序或值对象?

标签 java spring jackson spring-boot kotlin

在专注于 iOS 几年后,我将重返后端开发。我选择了 Spring Boot 和 Kotlin。

  • 我想要一个以领域为中心的、通用的、可重用的模型对象。
  • 对于服务调用,我想返回特定于用例的响应,其中有效负载输入/输出只是该特定场景的信息。 (我们可以称之为“契约(Contract)优先”或“不要泄露你的胆量”)

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

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

问题:

  • 有没有一种简单的方法可以使用 jackson 的自定义序列化器来完成我想要的事情?
  • 或者继续使用我多年前使用的值对象方法是否更好?

最佳答案

根据您的用例,使用专用 DTO 可能是一个好主意。正如您所知,您可以从 Jackson 获得更大的灵 active ,而无需为每个场景实现自定义序列化器 - Jackson Json Views are now supported in Spring MVC并且非常有用。

关于java - Jackson 自定义序列化程序或值对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049162/

相关文章:

java - 在 jackson 解析日期的正确日期格式是什么?

java - 如何使用自动发现在 Jersey 中启用自动 JSON 编码?

java - @class 被添加,即使它是 defaultImpl

java - 如果我想使用 char 检查 Java 中的特殊字符,该怎么办?

Java setOpaque 方法无法在其他面板之上添加面板

java - 我想知道运行 java selenium 代码所需的版本

java - 通过网关丰富有效负载

spring - 需要了解 spring.handlers 和 spring.schemas

java - 使用 Gradle 构建的 Java Spring Boot 项目中偶尔出现 BeanCreationException

java - Hibernate:没有 Activity 事务,createQuery 无效