SpringBoot使用thymefeal出现No mapping for GET /xxx的解决办法

出错代码:

@Configuration
public class Myconfig extends WebMvcConfigurationSupport{
    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/test").setViewName("success");
    }

    @Bean
    public WebMvcConfigurationSupport webMvcConfigurationSupport(){
        WebMvcConfigurationSupport aa = new WebMvcConfigurationSupport(){
            @Override
            protected void addViewControllers(ViewControllerRegistry registry) {
                registry.addViewController("/boluo").setViewName("success");
            }
        } ;
        return aa;
    }

}

出错原因:aa返回不回来,访问报错No mapping for GET ,原因 是把
@Bean下的
public WebMvcConfigurationSupport webMvcConfigurationSupport()
,此处不能用WebMvcConfigurationSupport ,应修改为public WebMvcConfigurer webMvcConfigurer(){
WebMvcConfigurer webMvcConfigurer = new WebMvcConfigurer()

关于静态资源不能访问的问题:
出现该问题是因为springboot 2.0后静态资源也经过拦截器导致的。
由于WebMvcConfigurerAdapter 的废弃,现今配置拦截器可使用 继承 WebMvcConfigurationSupport 类和实现 WebMvcConfigurer接口 两种方法。
建议采用后一种方法(实现接口),否则会出现如题所示的方法。
如果坚持使用继承WebMvcConfigurationSupport类 的方法,则必须要覆盖重写WebMvcConfigurationSupport类 的

protected void addResourceHandlers(ResourceHandlerRegistry registry)

具体如下:

@Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations("classpath:/static/")
                .addResourceLocations("classpath:/templates/");
        super.addResourceHandlers(registry);
    }

你可能感兴趣的:(springboot学习笔记)