学习笔记——Spring Boot(6)

Spring boot2.0遇到的问题

  在观看网课时,我按照老师所给的代码及步骤编写,但是idea总是给我标红,而且找来找去找不到问题的所在,最终发现是spring boot版本的问题,我使用的是2.0.4版本,而老师的是1.5的版本,想换个版本,但是我使用的是java10,旧版本也出错,最终只可以使用新版本,网上找资料,查问题。

 

推荐博客:

1)嘟嘟独立博客

2)纯洁的微笑博客

 

遇到的问题:

 

(1)WebMvcConfigurerAdapter提示过时

Springboot2.0将原本的手动配置springMVC的类WebMvcConfigurerAdapter取消了,取而代之的是接口WebMvcConfigurer

旧:

public class MyWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter

新:

public class MyWebMvcConfigurerAdapter implements WebMvcConfigurer

 

 

(2)静态资源被拦截

出现原因:1.5版本时候META-INF/resources / resources / static / public 都是spring boot 认为静态资源应该放置的位置,会自动去寻找静态资源,而在spring boot 2.0则对静态资源也进行了拦截,当拦截器拦截到请求之后,但controller里并没有对应的请求时,该请求会被当成是对静态资源的请求。此时的handler就是 ResourceHttpRequestHandler,就会抛出上述错误。

 

解决方法:在编写拦截器的时候记得将路径”/static/**”排除在外即可。可以看博客解决。

 

实现:在配置SpringMVC中使用接口WebMvcConfigurer中添加两个方法:

@Override

public void addInterceptors(InterceptorRegistry registry) {

   registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**")

            .excludePathPatterns("/index.html","/","/user/login","/static/**");

}

@Override

public void addResourceHandlers(ResourceHandlerRegistry registry) {

   registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");

   WebMvcConfigurer.super.addResourceHandlers(registry);

}

#未完待续,以后遇到会继续spring2.0的问题会继续更新

猜你喜欢

转载自blog.csdn.net/nanshenjiang/article/details/81415141