//package com.casic.missiles.config; // //import cn.hutool.core.util.StrUtil; //import com.alibaba.fastjson.serializer.SerializeConfig; //import com.alibaba.fastjson.serializer.SerializerFeature; //import com.alibaba.fastjson.serializer.ToStringSerializer; //import com.alibaba.fastjson.serializer.ValueFilter; //import com.alibaba.fastjson.support.config.FastJsonConfig; //import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; //import com.casic.missiles.config.properties.CasicProperties; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Value; //import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; //import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; //import org.springframework.boot.web.servlet.ServletComponentScan; //import org.springframework.context.annotation.Configuration; //import org.springframework.core.annotation.Order; //import org.springframework.http.MediaType; //import org.springframework.http.converter.HttpMessageConverter; //import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; //import org.springframework.web.servlet.LocaleResolver; //import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; //import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; //import org.springframework.web.servlet.i18n.CookieLocaleResolver; // //import java.math.BigDecimal; //import java.math.BigInteger; //import java.nio.charset.Charset; //import java.util.ArrayList; //import java.util.Iterator; //import java.util.List; //import java.util.Locale; // // //@ServletComponentScan("com.casic.missiles.config") //@ConditionalOnClass(com.alibaba.fastjson.JSON.class) //@ConditionalOnMissingBean(FastJsonHttpMessageConverter.class) //@Configuration //class WebMvcConfig extends WebMvcConfigurationSupport { // @Value("${spring.messages.locale:SIMPLIFIED_CHINESE}") // private String locale; // // public WebMvcConfig() { // } // // @Autowired // private CasicProperties casicProperties; // // @Override // public void addResourceHandlers(ResourceHandlerRegistry registry) { // //Spring Boot自动配置自己不会自动把/swagger-ui.html这个路径映射到对应的目录META-INF/resources/下面 // registry.addResourceHandler("swagger-ui.html").addResourceLocations( // "classpath:/META-INF/resources/"); // registry.addResourceHandler("/webjars/**").addResourceLocations( // "classpath:/META-INF/resources/webjars/"); // registry.addResourceHandler("doc.html").addResourceLocations( // "classpath:/META-INF/resources/"); // registry.addResourceHandler("/favicon.ico").addResourceLocations( // "classpath:/META-INF/resources/"); // if (StrUtil.isNotEmpty(casicProperties.getFile().getUploadPath())) { // registry.addResourceHandler("/static/**").addResourceLocations("file:" + casicProperties.getFile().getUploadPath()); // } // System.out.println("-----------2-------"); // super.addResourceHandlers(registry); // } // // @Override // public LocaleResolver localeResolver() { // CookieLocaleResolver slr = new CookieLocaleResolver(); // //设置默认区域,Locale.SIMPLIFIED_CHINESE // switch (locale) { // case "US": // slr.setDefaultLocale(Locale.US); // break; // default: // slr.setDefaultLocale(Locale.SIMPLIFIED_CHINESE); // } // //设置cookie有效期. // slr.setCookieMaxAge(3600); // return slr; // } // // @Override // public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { // Iterator<HttpMessageConverter<?>> iterator = converters.iterator(); // //先把JackSon的消息转换器删除. 在SpringBoot2.X时代,必须要排除JackSon消息转换器。 // while (iterator.hasNext()) { // HttpMessageConverter<?> converter = iterator.next(); // if (converter instanceof MappingJackson2HttpMessageConverter) { // iterator.remove(); // } // } // System.out.println("-----------1-------"); // FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); // converter.setFastJsonConfig(fastjsonConfig()); // converter.setSupportedMediaTypes(getSupportedMediaType()); // converters.add(converter); // } // // /** // * fastjson的配置 // */ // public FastJsonConfig fastjsonConfig() { // FastJsonConfig fastJsonConfig = new FastJsonConfig(); // fastJsonConfig.setSerializerFeatures( // SerializerFeature.PrettyFormat, // SerializerFeature.WriteMapNullValue, // SerializerFeature.WriteEnumUsingToString // ); // //修改,设置全局时间为精确到天,页面列表显示不带时分秒 // fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss"); //// fastJsonConfig.setDateFormat("yyyy-MM-dd"); // ValueFilter valueFilter = new ValueFilter() { // @Override // public Object process(Object o, String s, Object o1) { // if (null == o1) { // o1 = ""; // } // return o1; // } // }; // fastJsonConfig.setCharset(Charset.forName("utf-8")); // fastJsonConfig.setSerializeFilters(valueFilter); // // //解决Long转json精度丢失的问题 // SerializeConfig serializeConfig = SerializeConfig.globalInstance; // serializeConfig.put(BigInteger.class, ToStringSerializer.instance); // serializeConfig.put(Long.class, ToStringSerializer.instance); // serializeConfig.put(BigDecimal.class, ToStringSerializer.instance); //// serializeConfig.put(Long.TYPE, ToStringSerializer.instance); // fastJsonConfig.setSerializeConfig(serializeConfig); // return fastJsonConfig; // } // // /** // * 支持的mediaType类型 // */ // public List<MediaType> getSupportedMediaType() { // ArrayList<MediaType> mediaTypes = new ArrayList<>(); // mediaTypes.add(MediaType.APPLICATION_JSON_UTF8); // // return mediaTypes; // } // //} //