| /** | 
|  * Copyright (c) 2018 人人开源 All rights reserved. | 
|  * | 
|  * https://www.renren.io | 
|  * | 
|  * 版权所有,侵权必究! | 
|  */ | 
|   | 
| package com.zt.core.config.mvc; | 
|   | 
| import com.fasterxml.jackson.databind.DeserializationFeature; | 
| import com.fasterxml.jackson.databind.ObjectMapper; | 
| import com.fasterxml.jackson.databind.module.SimpleModule; | 
| import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; | 
| import com.zt.core.db.annotation.QueryParamMethodArgumentResolver; | 
| import org.springframework.context.annotation.Bean; | 
| import org.springframework.context.annotation.Configuration; | 
| import org.springframework.http.converter.ByteArrayHttpMessageConverter; | 
| import org.springframework.http.converter.HttpMessageConverter; | 
| import org.springframework.http.converter.ResourceHttpMessageConverter; | 
| import org.springframework.http.converter.StringHttpMessageConverter; | 
| import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; | 
| import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter; | 
| import org.springframework.web.method.support.HandlerMethodArgumentResolver; | 
| import org.springframework.web.servlet.config.annotation.CorsRegistry; | 
| import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | 
|   | 
| import java.text.SimpleDateFormat; | 
| import java.util.List; | 
| import java.util.TimeZone; | 
|   | 
| @Configuration("mvc") | 
| public class WebMvcConfig implements WebMvcConfigurer { | 
|   | 
|     @Override | 
|     public void addCorsMappings(CorsRegistry registry) { | 
|         registry.addMapping("/**").allowedOrigins("*").allowCredentials(true) | 
|                 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS").maxAge(3600); | 
|     } | 
|   | 
|     @Override | 
|     public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { | 
|         converters.add(new ByteArrayHttpMessageConverter()); | 
|         converters.add(new StringHttpMessageConverter()); | 
|         converters.add(new ResourceHttpMessageConverter()); | 
|         converters.add(new AllEncompassingFormHttpMessageConverter()); | 
|         converters.add(new StringHttpMessageConverter()); | 
|         converters.add(jackson2HttpMessageConverter()); | 
|     } | 
|   | 
|     @Override | 
|     public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { | 
|         argumentResolvers.add(new QueryParamMethodArgumentResolver()); | 
|     } | 
|   | 
|     @Bean | 
|     public MappingJackson2HttpMessageConverter jackson2HttpMessageConverter() { | 
|         MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter(); | 
|         ObjectMapper mapper = new ObjectMapper(); | 
|   | 
|         // 日期格式转换 | 
|         mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); | 
|         mapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); | 
|         mapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); | 
|   | 
|         // Long类型转String类型 | 
|         SimpleModule simpleModule = new SimpleModule(); | 
|         simpleModule.addSerializer(Long.class, ToStringSerializer.instance); | 
|         simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance); | 
|         mapper.registerModule(simpleModule); | 
|   | 
|         converter.setObjectMapper(mapper); | 
|         return converter; | 
|     } | 
|   | 
| } |