WebMvcConfigurerAdapter过期解决办法

二、WebMvcConfigurerAdapter过期解决办法

可以通过实现 WebMvcConfigurer接口或继承WebMvcConfigurationSupport类解决,范例如下:

//WebMvcConfigurerAdapter过期代码
WebMvcConfigurerAdapter adapter = new WebMvcConfigurerAdapter() {
          
   
            @Override
            public void addViewControllers(ViewControllerRegistry registry) {
          
   
                registry.addViewController("/").setViewName("login");
                registry.addViewController("/index.html").setViewName("login");
                registry.addViewController("/main.html").setViewName("Dashboard");
            }
}

2.1 WebMvcConfigurer接口

//解决代码
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
          
   
    //设置默认首页
    @Override
    public void addViewControllers(ViewControllerRegistry registry){
          
   
        registry.addViewController("/index.html").setViewName("login");
        registry.addViewController("/").setViewName("login");
        registry.addViewController("/main.html").setViewName("success");
    }
    //拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry){
          
   
        registry.addInterceptor(new LoginHandlerInterceptor()).addPathPatterns("/**").excludePathPatterns("/index.html","/","/login");
    }

}

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);

2.2 WebMvcConfigurationSupport 类

@Configuration
public class MyMvcConfig extends WebMvcConfigurationSupport {
          
   

    @Override
    protected void addViewControllers(ViewControllerRegistry registry){
          
   
        registry.addViewController("/").setViewName("login");
        registry.addViewController("/index.html").setViewName("login");
        registry.setOrder(Ordered.HIGHEST_PRECEDENCE);
        super.addViewControllers(registry);
    }

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry){
          
   
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        super.addResourceHandlers(registry);
    }
}
经验分享 程序员 微信小程序 职场和发展