| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- package com.crm.rely.backend.configuration;
- import com.alibaba.fastjson.parser.Feature;
- import com.alibaba.fastjson.serializer.SerializerFeature;
- import com.alibaba.fastjson.support.config.FastJsonConfig;
- import com.crm.rely.backend.interceptor.LocaleInterceptor;
- import com.crm.rely.backend.interceptor.NoRepeatSubmitInterceptor;
- import com.crm.rely.backend.service.RedisService;
- import com.google.common.base.Strings;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.boot.autoconfigure.web.HttpMessageConverters;
- import org.springframework.context.annotation.Bean;
- import org.springframework.http.MediaType;
- import org.springframework.http.converter.HttpMessageConverter;
- import org.springframework.http.converter.StringHttpMessageConverter;
- import org.springframework.scheduling.TaskScheduler;
- import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
- import org.springframework.web.servlet.LocaleResolver;
- 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 org.springframework.web.servlet.i18n.SessionLocaleResolver;
- import java.nio.charset.Charset;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Locale;
- /**
- * @author houn
- */
- public class GlobalConfiguration extends WebMvcConfigurerAdapter {
- @Autowired
- private RedisService redisService;
- @Autowired
- private LocaleMessage localeMessage;
- /**
- * 设置返回
- *
- * @param converters
- */
- @Override
- public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
- super.configureMessageConverters(converters);
- StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter();
- List<MediaType> mediaTypes = new ArrayList<>();
- mediaTypes.add(MediaType.TEXT_PLAIN);
- mediaTypes.add(MediaType.TEXT_HTML);
- mediaTypes.add(MediaType.TEXT_XML);
- stringHttpMessageConverter.setSupportedMediaTypes(mediaTypes);
- stringHttpMessageConverter.setDefaultCharset(Charset.forName("UTF-8"));
- converters.add(stringHttpMessageConverter);
- }
- /**
- * fastJson格式化
- *
- * @return
- */
- @Bean
- public HttpMessageConverters fastJsonHttpMessageConverters() {
- /**
- * 使用自定义时间格式化 继承FastJsonHttpMessageConverter
- */
- CustomJsonHttpMessageConverter fasHttpMessageConverter = new CustomJsonHttpMessageConverter();
- List<MediaType> supportedMediaTypes = new ArrayList<>();
- supportedMediaTypes.add(MediaType.APPLICATION_JSON);
- supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
- supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED);
- supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM);
- supportedMediaTypes.add(MediaType.APPLICATION_PDF);
- supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML);
- supportedMediaTypes.add(MediaType.APPLICATION_XML);
- supportedMediaTypes.add(MediaType.IMAGE_GIF);
- supportedMediaTypes.add(MediaType.IMAGE_JPEG);
- supportedMediaTypes.add(MediaType.IMAGE_PNG);
- supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM);
- supportedMediaTypes.add(MediaType.TEXT_MARKDOWN);
- fasHttpMessageConverter.setSupportedMediaTypes(supportedMediaTypes);
- FastJsonConfig fastJsonConfig = new FastJsonConfig();
- fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteMapNullValue,
- SerializerFeature.WriteNullListAsEmpty);
- fastJsonConfig.setFeatures( Feature.OrderedField);
- fasHttpMessageConverter.setFastJsonConfig(fastJsonConfig);
- HttpMessageConverter<?> converter = fasHttpMessageConverter;
- return new HttpMessageConverters(converter);
- }
- /**
- * 设置跨域
- *
- * @param registry
- */
- @Override
- public void addCorsMappings(CorsRegistry registry) {
- //设置允许跨域的路径
- registry.addMapping("/**")
- //设置允许跨域请求的域名
- .allowedOrigins("*")
- //是否允许证书 不再默认开启
- .allowCredentials(true)
- //设置允许的方法
- .allowedMethods("*")
- .allowedHeaders("*")
- //跨域允许时间
- .maxAge(3600);
- }
- // @Override
- // public void addInterceptors(InterceptorRegistry registry) {
- //
- //
- // registry.addInterceptor(new NoRepeatSubmitInterceptor(redisService, localeMessage)).addPathPatterns("/**");
- // super.addInterceptors(registry);
- // }
- @Bean
- LocaleInterceptor localeInterceptor() {
- return new LocaleInterceptor();
- }
- @Bean
- public LocaleResolver localeResolver() {
- final SessionLocaleResolver localeResolver = new SessionLocaleResolver();
- localeResolver.setDefaultLocale(new Locale("zh", "CN"));
- return localeResolver;
- }
- @Bean
- public TaskScheduler scheduledExecutorService() {
- ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
- scheduler.setPoolSize(8);
- scheduler.setThreadNamePrefix("scheduled-thread-");
- return scheduler;
- }
- }
|