WebMvcConfigurer
在springBoot中可以通过实现WebMvcConfigurer并重写方法,修改很多的默认配置,
常用方法
/* 拦截器配置 */
void addInterceptors(InterceptorRegistry var1);
/* 视图跳转控制器 */
void addViewControllers(ViewControllerRegistry registry);
/**
*静态资源处理
**/
void addResourceHandlers(ResourceHandlerRegistry registry);
/* 默认静态资源处理器 */
void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer);
/**
*这里配置视图解析器
**/
void configureViewResolvers(ViewResolverRegistry registry);
/* 配置内容裁决的一些选项*/
void configureContentNegotiation(ContentNegotiationConfigurer configurer);
/** 解决跨域问题 **/
public void addCorsMappings(CorsRegistry registry) ;
拦截器
- 写一个类继承HandlerInterceptor
public class MyInterceptor implements HandlerInterceptor {
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
//调用controller前执行
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("进入垃圾恶气preHandle");
// 在这里对拦截的内容进行处理
request.getMethod();
return true;
}
扩展mvc
- 写一个类实现WebMvcConfigurer
- 重写拦截器方法
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
System.out.println("注册拦截器。。。。。。。。。。。。");
MyInterceptor interceptor= new MyInterceptor();
InterceptorRegistration registration = registry.addInterceptor(interceptor);
registration.addPathPatterns("/**");//添加拦截路径
registration.excludePathPatterns( //添加不拦截路径
"/login", //登录页面的地址【不拦截】
"/**/*.html", //html静态资源
"/**/*.js", //js静态资源
"/**/*.css" //css静态资源
);
}
当方法被拦截时,先进如拦截器,在进入控制器