package com.terra.system.config;
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
import com.alibaba.fastjson.support.config.FastJsonConfig;
|
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
|
import com.terra.system.interceptor.AuthInterceptor;
|
import com.terra.system.service.all.SysService;
|
import javax.annotation.Resource;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.core.Ordered;
|
import org.springframework.http.converter.HttpMessageConverter;
|
import org.springframework.util.AntPathMatcher;
|
import org.springframework.web.servlet.config.annotation.*;
|
|
import java.nio.charset.Charset;
|
import java.util.List;
|
|
/**
|
* Web配置类
|
* @author WWW
|
*/
|
@Configuration
|
public class WebConfig extends WebMvcConfigurationSupport {
|
@Resource
|
private SysService sysService;
|
|
@Override
|
public void addViewControllers(ViewControllerRegistry registry) {
|
// 设置访问路径为 “/” 跳转到指定页面
|
registry.addViewController("/").setViewName("redirect:/sign/toIndex");
|
// 设置为最高优先级
|
registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
|
}
|
|
/**
|
* 获取拦截器对象
|
*
|
* @return
|
*/
|
public AuthInterceptor getAuthBean() {
|
return new AuthInterceptor(sysService);
|
}
|
|
/**
|
* swagger控制
|
*/
|
@Override
|
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
|
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
|
super.addResourceHandlers(registry);
|
}
|
|
/**
|
* 忽略url地址大小写
|
*/
|
@Override
|
protected void configurePathMatch(PathMatchConfigurer configurer) {
|
AntPathMatcher matcher = new AntPathMatcher();
|
matcher.setCaseSensitive(false);
|
|
configurer.setPathMatcher(matcher);
|
}
|
|
/**
|
* 跨域请求
|
*/
|
/*@Override
|
protected void addCorsMappings(CorsRegistry registry) {
|
registry.addMapping("/**")
|
.allowCredentials(true)
|
.allowedOrigins("*")
|
.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
|
.allowedHeaders("*")
|
.maxAge(3600);
|
}*/
|
|
/**
|
* 添加统一的拦截器
|
*/
|
@Override
|
protected void addInterceptors(InterceptorRegistry registry) {
|
registry.addInterceptor(getAuthBean())
|
// .excludePathPatterns("/swagger", "/webjars/**", "/v2/**", "/sign/**")
|
.addPathPatterns("/**");
|
super.addInterceptors(registry);
|
}
|
|
/**
|
* 处理json格式,值null的转换为""
|
*/
|
@Override
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
|
FastJsonConfig config = new FastJsonConfig();
|
config.setSerializerFeatures(
|
SerializerFeature.WriteNullListAsEmpty,
|
SerializerFeature.WriteMapNullValue,
|
//SerializerFeature.WriteNullStringAsEmpty,
|
SerializerFeature.WriteNullNumberAsZero,
|
SerializerFeature.WriteNullBooleanAsFalse);
|
// 结果是否格式化,默认为false
|
//SerializerFeature.PrettyFormat);
|
|
converter.setFastJsonConfig(config);
|
converter.setDefaultCharset(Charset.forName("UTF-8"));
|
converters.add(converter);
|
}
|
}
|