spzx/spzx-common/common-service/src/main/java/com/atguigu/config/WebMvcConfiguration.java

69 lines
2.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.atguigu.config;
import com.atguigu.constant.LocalDateTimeConstant;
import com.atguigu.interceptor.LoginAuthInterceptor;
import com.atguigu.json.JacksonObjectMapper;
import com.atguigu.properties.InterceptorsProperties;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import java.text.SimpleDateFormat;
import java.util.List;
@Component
@Slf4j
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
@Autowired
private LoginAuthInterceptor loginAuthInterceptor;
@Autowired
private InterceptorsProperties interceptorsProperties;
/**
* * 解决跨域
*
* @param registry 跨域注册表
*/
protected void addCorsMappings(CorsRegistry registry) {
log.info("开始跨域注册表...");
registry.addMapping("/**")// 添加路径规则
.allowCredentials(true)// 是否允许在跨域的情况下传递Cookie
.allowedOriginPatterns("*")// 允许请求来源的域规则
.allowedMethods("*").allowedHeaders("*");// 允许所有的请求头
}
/**
* 注册自定义拦截器
*
* @param registry InterceptorRegistry
*/
protected void addInterceptors(InterceptorRegistry registry) {
log.info("开始注册自定义拦截器...");
// 需要拦截的
registry.addInterceptor(loginAuthInterceptor).addPathPatterns("/**")
.excludePathPatterns(interceptorsProperties.getNoAuthUrls());
}
/**
* 扩展Spring MVC框架的消息转化器
*
* @param converters 转换器
*/
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
log.info("扩展消息转换器...");
// 创建一个消息转换器对象
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
// 需要为消息转换器设置一个对象转换器对象转换器可以将Java对象序列化为json数据
converter.setObjectMapper(new JacksonObjectMapper());
// 添加条件判断,只应用于特定的请求路径
converter.getObjectMapper().setDateFormat(new SimpleDateFormat(LocalDateTimeConstant.DEFAULT_DATE_TIME_SECOND_FORMAT));
// 将自己的消息转化器加入容器中
converters.add(converter);
}
}