diff --git a/mallinkCallback/src/main/java/com/iformall/config/WebConfig.java b/mallinkCallback/src/main/java/com/iformall/config/WebConfig.java index 55248bebc..c736af6d3 100644 --- a/mallinkCallback/src/main/java/com/iformall/config/WebConfig.java +++ b/mallinkCallback/src/main/java/com/iformall/config/WebConfig.java @@ -46,22 +46,53 @@ public class WebConfig implements WebMvcConfigurer { List> converters = adapter.getMessageConverters(); MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter(); + List supportedMediaTypes = new ArrayList(); MediaType textMedia = new MediaType(MediaType.TEXT_PLAIN, Charset.forName("UTF-8")); supportedMediaTypes.add(textMedia); MediaType jsonMedia = new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")); supportedMediaTypes.add(jsonMedia); - jsonConverter.setSupportedMediaTypes(supportedMediaTypes); - converters.add(jsonConverter); - + ObjectMapper objectMapper = getObjectMapper(); + jsonConverter.setObjectMapper(objectMapper); + converters.add(jsonConverter); adapter.setMessageConverters(converters); return adapter; } + private ObjectMapper getObjectMapper() { + //ObjectMapper 是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然 + ObjectMapper objectMapper = new ObjectMapper(); + SimpleModule simpleModule = new SimpleModule(); + + //不显示为null的字段 + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + + DeserializationConfig dc = objectMapper.getDeserializationConfig(); + // 设置反序列化日期格式、忽略不存在get、set的属性 + objectMapper.setConfig( + dc.with(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")) + .without(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) + ); + + //序列化将Long转String类型 + simpleModule.addSerializer(Long.class, ToStringSerializer.instance); + simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); + SimpleModule bigIntegerModule = new SimpleModule(); + //序列化将BigInteger转String类型 + bigIntegerModule.addSerializer(BigInteger.class, ToStringSerializer.instance); + SimpleModule bigDecimalModule = new SimpleModule(); + //序列化将BigDecimal转String类型 + bigDecimalModule.addSerializer(BigDecimal.class, ToStringSerializer.instance); + objectMapper.registerModule(simpleModule); + objectMapper.registerModule(bigDecimalModule); + objectMapper.registerModule(bigIntegerModule); + return objectMapper; + } + @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); @@ -118,31 +149,7 @@ public class WebConfig implements WebMvcConfigurer { public void configureMessageConverters(List> converters) { MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); //ObjectMapper 是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然 - ObjectMapper objectMapper = new ObjectMapper(); - SimpleModule simpleModule = new SimpleModule(); - - //不显示为null的字段 - objectMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); - - DeserializationConfig dc = objectMapper.getDeserializationConfig(); - // 设置反序列化日期格式、忽略不存在get、set的属性 - objectMapper.setConfig( - dc.with(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")) - .without(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES) - ); - - //序列化将Long转String类型 - simpleModule.addSerializer(Long.class, ToStringSerializer.instance); - simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); - SimpleModule bigIntegerModule = new SimpleModule(); - //序列化将BigInteger转String类型 - bigIntegerModule.addSerializer(BigInteger.class, ToStringSerializer.instance); - SimpleModule bigDecimalModule = new SimpleModule(); - //序列化将BigDecimal转String类型 - bigDecimalModule.addSerializer(BigDecimal.class, ToStringSerializer.instance); - objectMapper.registerModule(simpleModule); - objectMapper.registerModule(bigDecimalModule); - objectMapper.registerModule(bigIntegerModule); + ObjectMapper objectMapper = getObjectMapper(); jackson2HttpMessageConverter.setObjectMapper(objectMapper); converters.add(jackson2HttpMessageConverter); }