消息转换器
您可以通过重写 configureMessageConverters() 来配置要使用的 HttpMessageConverter 个实例。
以下示例配置了自定义的 Jackson JSON 和 XML 转换器,并使用了自定义的映射器,而不是默认的映射器:
-
Java
-
Kotlin
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Override
public void configureMessageConverters(HttpMessageConverters.ServerBuilder builder) {
JsonMapper jsonMapper = JsonMapper.builder()
.findAndAddModules()
.enable(SerializationFeature.INDENT_OUTPUT)
.defaultDateFormat(new SimpleDateFormat("yyyy-MM-dd"))
.build();
XmlMapper xmlMapper = XmlMapper.builder()
.findAndAddModules()
.defaultUseWrapper(false)
.build();
builder.withJsonConverter(new JacksonJsonHttpMessageConverter(jsonMapper))
.withXmlConverter(new JacksonXmlHttpMessageConverter(xmlMapper));
}
}
@Configuration
class WebConfiguration : WebMvcConfigurer {
override fun configureMessageConverters(builder: HttpMessageConverters.ServerBuilder) {
val jsonMapper = JsonMapper.builder()
.findAndAddModules()
.enable(SerializationFeature.INDENT_OUTPUT)
.defaultDateFormat(SimpleDateFormat("yyyy-MM-dd"))
.build()
val xmlMapper = XmlMapper.builder()
.findAndAddModules()
.defaultUseWrapper(false)
.build()
builder.withJsonConverter(JacksonJsonHttpMessageConverter(jsonMapper))
.withXmlConverter(JacksonXmlHttpMessageConverter(xmlMapper))
}
}