12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package com.wsm.common.config;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- import com.alibaba.fastjson.support.config.FastJsonConfig;
- import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter4;
- import com.wsm.common.interceptor.CommonInterceptor;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.http.MediaType;
- import org.springframework.http.converter.HttpMessageConverter;
- import org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter;
- import org.springframework.web.servlet.config.annotation.CorsRegistry;
- import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
- import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
- import java.util.ArrayList;
- import java.util.List;
- @Configuration
- public class WebMvcConfig extends WebMvcConfigurerAdapter {
- @Autowired
- private CommonInterceptor commonInterceptor;
- /**
- * fastJson相关设置
- */
- private FastJsonConfig getFastJsonConfig() {
- FastJsonConfig fastJsonConfig = new FastJsonConfig();
- // 在serializerFeatureList中添加转换规则
- List<SerializerFeature> serializerFeatureList = new ArrayList<SerializerFeature>();
- serializerFeatureList.add(SerializerFeature.PrettyFormat);
- serializerFeatureList.add(SerializerFeature.WriteMapNullValue);
- serializerFeatureList.add(SerializerFeature.WriteNullStringAsEmpty);
- serializerFeatureList.add(SerializerFeature.WriteNullListAsEmpty);
- serializerFeatureList.add(SerializerFeature.DisableCircularReferenceDetect);
- SerializerFeature[] serializerFeatures = serializerFeatureList.toArray(new SerializerFeature[serializerFeatureList.size()]);
- fastJsonConfig.setSerializerFeatures(serializerFeatures);
- fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
- return fastJsonConfig;
- }
- /**
- * fastJson相关设置
- */
- private FastJsonHttpMessageConverter4 fastJsonHttpMessageConverter() {
- FastJsonHttpMessageConverter4 fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter4();
- List<MediaType> supportedMediaTypes = new ArrayList<MediaType>();
- supportedMediaTypes.add(MediaType.parseMediaType("text/html;charset=UTF-8"));
- supportedMediaTypes.add(MediaType.parseMediaType("application/json"));
- fastJsonHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes);
- fastJsonHttpMessageConverter.setFastJsonConfig(getFastJsonConfig());
- return fastJsonHttpMessageConverter;
- }
- /**
- * 添加fastJsonHttpMessageConverter到converters
- */
- @Override
- public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- converters.add(fastJsonHttpMessageConverter());
- }
- /**
- * 添加拦截器
- */
- @Override
- public void addInterceptors(InterceptorRegistry registry) {
- registry.addInterceptor(commonInterceptor).addPathPatterns("/**");
- super.addInterceptors(registry);
- }
- @Bean
- public FilterRegistrationBean registFilter() {
- FilterRegistrationBean registration = new FilterRegistrationBean();
- registration.setFilter(new OpenEntityManagerInViewFilter());
- registration.addUrlPatterns("/*");
- registration.setOrder(1);
- return registration;
- }
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- registry.addMapping("/**")
- .allowedOrigins("*")
- .allowCredentials(true)
- .allowedMethods("GET", "POST", "DELETE", "PUT")
- .maxAge(3600);
- }
- }
|