/**
|
* 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;
|
}
|
|
}
|