Newer
Older
casic-PTZ / casic-common / src / main / java / com / casic / missiles / config / WebMvcConfig.java
chaizhuang on 27 Apr 2023 6 KB bug修改
//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;
//    }
//
//}
//