消息转换器
您可以通过覆盖 configureMessageConverters()
来在 Java 配置中设置要使用的 HttpMessageConverter
实例,替换默认使用的实例。
您还可以通过覆盖 extendMessageConverters()
来在最后自定义已配置的消息转换器列表。
在 Spring Boot 应用程序中, |
以下示例添加了带有自定义 ObjectMapper
的 XML 和 Jackson JSON 转换器,而不是默认的转换器:
在前面的示例中,
Jackson2ObjectMapperBuilder
用于为 MappingJackson2HttpMessageConverter
和
MappingJackson2XmlHttpMessageConverter
创建通用配置,该配置启用了缩进、自定义日期格式,
并注册了 jackson-module-parameter-names
,
它增加了对访问参数名称的支持(Java 8 中添加的功能)。
此构建器按如下方式自定义 Jackson 的默认属性:
如果 classpath 上检测到以下知名模块,它还会自动注册它们:
-
jackson-datatype-jsr310:支持 Java 8 日期和时间 API 类型。
-
jackson-datatype-jdk8:支持其他 Java 8 类型,例如
Optional
。 -
jackson-module-kotlin:支持 Kotlin 类和数据类。
启用 Jackson XML 支持的缩进需要
|
还有其他有趣的 Jackson 模块可用:
-
jackson-datatype-money:支持
javax.money
类型(非官方模块)。 -
jackson-datatype-hibernate:支持 Hibernate 特定的类型和属性(包括延迟加载方面)。