| @@ -46,22 +46,53 @@ public class WebConfig implements WebMvcConfigurer { | |||||
| List<HttpMessageConverter<?>> converters = adapter.getMessageConverters(); | List<HttpMessageConverter<?>> converters = adapter.getMessageConverters(); | ||||
| MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter(); | MappingJackson2HttpMessageConverter jsonConverter = new MappingJackson2HttpMessageConverter(); | ||||
| List<MediaType> supportedMediaTypes = new ArrayList<MediaType>(); | List<MediaType> supportedMediaTypes = new ArrayList<MediaType>(); | ||||
| MediaType textMedia = new MediaType(MediaType.TEXT_PLAIN, Charset.forName("UTF-8")); | MediaType textMedia = new MediaType(MediaType.TEXT_PLAIN, Charset.forName("UTF-8")); | ||||
| supportedMediaTypes.add(textMedia); | supportedMediaTypes.add(textMedia); | ||||
| MediaType jsonMedia = new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")); | MediaType jsonMedia = new MediaType(MediaType.APPLICATION_JSON, Charset.forName("UTF-8")); | ||||
| supportedMediaTypes.add(jsonMedia); | supportedMediaTypes.add(jsonMedia); | ||||
| jsonConverter.setSupportedMediaTypes(supportedMediaTypes); | jsonConverter.setSupportedMediaTypes(supportedMediaTypes); | ||||
| converters.add(jsonConverter); | |||||
| ObjectMapper objectMapper = getObjectMapper(); | |||||
| jsonConverter.setObjectMapper(objectMapper); | |||||
| converters.add(jsonConverter); | |||||
| adapter.setMessageConverters(converters); | adapter.setMessageConverters(converters); | ||||
| return adapter; | 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 | @Bean | ||||
| public CorsFilter corsFilter() { | public CorsFilter corsFilter() { | ||||
| final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); | final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); | ||||
| @@ -118,31 +149,7 @@ public class WebConfig implements WebMvcConfigurer { | |||||
| public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { | public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { | ||||
| MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); | MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter(); | ||||
| //ObjectMapper 是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然 | //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); | jackson2HttpMessageConverter.setObjectMapper(objectMapper); | ||||
| converters.add(jackson2HttpMessageConverter); | converters.add(jackson2HttpMessageConverter); | ||||
| } | } | ||||