← Back to list

Spring boot 配置HttpMessageCoverter

Published on: | Views: 81
@Configuration
@ConditionalOnClass(HttpMessageConverter.class)
public class HttpMessageConverterConfiguration {
    @Bean
    @ConditionalOnMissingBean
    public HttpMessageConverters customConverters() {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder()
                .serializationInclusion(JsonInclude.Include.ALWAYS)
                .dateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))
                .serializerByType(Long.class, ToStringSerializer.instance)
                .serializerByType(Long.TYPE, ToStringSerializer.instance)
                .deserializerByType(Date.class, JsonTool.DateDeserializer.instance)
                .modulesToInstall(new ParameterNamesModule());
        HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter(builder.build());
        HttpMessageConverter xmlConverter = new MappingJackson2XmlHttpMessageConverter(builder.createXmlMapper(true).build());
        return new HttpMessageConverters(jsonConverter, xmlConverter);
    }
}

或者也可以创建多个HttpMessageConverter的bean, spring boot 会自动加入列表中。