【发布时间】:2018-10-30 03:24:42
【问题描述】:
我正在尝试将自定义 HttpMessageConverter<T> 添加到我的(Spring 驱动的)REST API。
@Configuration
public class SpringWebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new BodyPrinterInterceptor());
}
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
final List<HttpMessageConverter> injectedConverters = new ArrayList<>();
final SimpleModule module = new SimpleModule("module", new Version(1, 0, 0, null, null, null))
.addSerializer(LocalDate.class, new LocalDateSerializer())
.addDeserializer(LocalDate.class, new LocalDateDeserializer())
.addSerializer(Type2_Numbers.class, new Type2_Numbers_Serializer())
.addDeserializer(Type2_Numbers.class, new Type2_Numbers_Deserializer());
final ObjectMapper objectMapper = new ObjectMapper()
.enable(SerializationFeature.INDENT_OUTPUT)
.registerModule(module);
final MappingJackson2HttpMessageConverter converter1 = new MappingJackson2HttpMessageConverter();
converter1.setObjectMapper(objectMapper);
injectedConverters.add(converter1);
final XmlMapper xmlMapper = new XmlMapper();
xmlMapper.registerModule(module);
xmlMapper.enable(SerializationFeature.INDENT_OUTPUT);
final Jackson2ObjectMapperBuilder builder = Jackson2ObjectMapperBuilder.xml();
final MappingJackson2XmlHttpMessageConverter converter2 = new MappingJackson2XmlHttpMessageConverter(builder.build());
converter2.setObjectMapper(xmlMapper);
injectedConverters.add(converter2);
for (HttpMessageConverter injectedConverter : injectedConverters) {
converters.add(injectedConverter);
}
}
}
添加的转换器似乎不起作用。 (没有调用序列化器和反序列化器)
问题 如何正确添加 HttpMessageConverters?
【问题讨论】:
-
这里没有问题
-
添加明确的问题。
标签: java spring rest jackson spring-rest