package cn.huge.base.config;
|
|
import cn.huge.base.common.utils.SpringContextUtil;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.core.MethodParameter;
|
import org.springframework.lang.Nullable;
|
import org.springframework.web.bind.support.WebDataBinderFactory;
|
import org.springframework.web.context.request.NativeWebRequest;
|
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
|
import org.springframework.web.method.support.ModelAndViewContainer;
|
import org.springframework.web.servlet.config.annotation.CorsRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
|
import java.util.List;
|
|
/**
|
* @title: MVC配置
|
* @description: MVC配置
|
* @company: hugeinfo
|
* @author: liyj
|
* @time: 2021-11-05 16:51:48
|
* @version: 1.0.0
|
*/
|
@Configuration
|
public class WebMvcConfig implements WebMvcConfigurer {
|
@Override
|
public void addInterceptors(InterceptorRegistry registry) {
|
|
}
|
|
// @Override
|
// public void addCorsMappings(CorsRegistry registry) {
|
// registry.addMapping("/**")
|
// .allowedOrigins("*")
|
// .allowedHeaders("*")
|
// .allowCredentials(true)
|
// .allowedMethods("GET", "POST", "DELETE", "PUT", "PATCH")
|
// .maxAge(3600);
|
// }
|
|
/**
|
* 静态资源访问
|
* @param registry
|
*/
|
@Override
|
public void addResourceHandlers(ResourceHandlerRegistry registry) {
|
registry.addResourceHandler("static/**").addResourceLocations("classpath:/static/");
|
}
|
|
/**
|
* 参数解析
|
* @param resolvers
|
*/
|
@Override
|
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> resolvers) {
|
resolvers.add(new HandlerMethodArgumentResolver() {
|
|
@Override
|
public boolean supportsParameter(MethodParameter parameter) {
|
if (parameter.hasParameterAnnotation(CurrentUser.class)) {
|
return true;
|
}
|
return false;
|
}
|
@Nullable
|
@Override
|
public Object resolveArgument(MethodParameter parameter,
|
@Nullable ModelAndViewContainer mavContainer,
|
NativeWebRequest webRequest,
|
@Nullable WebDataBinderFactory binderFactory) throws Exception {
|
String userId = webRequest.getHeader("Authorization-userId");
|
if(userId == null){
|
throw new IllegalArgumentException("userId不能为空");
|
// //开发环境不校验
|
// if (SpringContextUtil.checkDev()){
|
// userId = "2204221720151007";
|
// }else {
|
// throw new IllegalArgumentException("userId不能为空");
|
// }
|
}
|
return userId;
|
}
|
});
|
resolvers.add(new HandlerMethodArgumentResolver() {
|
|
@Override
|
public boolean supportsParameter(MethodParameter parameter) {
|
if (parameter.hasParameterAnnotation(CurrentCust.class)) {
|
return true;
|
}
|
return false;
|
}
|
@Nullable
|
@Override
|
public Object resolveArgument(MethodParameter parameter,
|
@Nullable ModelAndViewContainer mavContainer,
|
NativeWebRequest webRequest,
|
@Nullable WebDataBinderFactory binderFactory) throws Exception {
|
String custId = webRequest.getHeader("Authorization-custId");
|
if(custId == null){
|
throw new IllegalArgumentException("custId不能为空");
|
// //开发环境不校验
|
// if (SpringContextUtil.checkDev()){
|
// custId = "2204121717531081";
|
// }else {
|
// throw new IllegalArgumentException("custId不能为空");
|
// }
|
}
|
return custId;
|
}
|
});
|
}
|
}
|
/**
|
* -------------------_ooOoo_-------------------
|
* ------------------o8888888o------------------
|
* ------------------88" . "88------------------
|
* ------------------(| -_- |)------------------
|
* ------------------O\ = /O------------------
|
* ---------------____/`---'\____---------------
|
* -------------.' \\| |// `.-------------
|
* ------------/ \\||| : |||// \------------
|
* -----------/ _||||| -:- |||||- \-----------
|
* -----------| | \\\ - /// | |-----------
|
* -----------| \_| ''\---/'' | |-----------
|
* -----------\ .-\__ `-` ___/-. /-----------
|
* ---------___`. .' /--.--\ `. . __----------
|
* ------."" '< `.___\_<|>_/___.' >'"".-------
|
* -----| | : `- \`.;`\ _ /`;.`/ - ` : | |-----
|
* -----\ \ `-. \_ __\ /__ _/ .-` / /-----
|
* ======`-.____`-.___\_____/___.-`____.-'======
|
* -------------------`=---='
|
* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
* ---------佛祖保佑---hugeinfo---永无BUG----------
|
*/
|