Spring boot2.0遇到的問題
在觀看網課時,我按照老師所給的代碼及步驟編寫,但是idea總是給我標紅,而且找來找去找不到問題的所在,最終發現是spring boot版本的問題,我使用的是2.0.4版本,而老師的是1.5的版本,想換個版本,但是我使用的是java10,舊版本也出錯,最終只可以使用新版本,網上找資料,查問題。
推薦博客:
1)嘟嘟獨立博客
2)純潔的微笑博客
3)左搜
遇到的問題:
(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);
}
(3)啓動項目時pom.xml出錯
問題:各個依賴導入有問題,可能存在多個起因導致的
解決方法:1.Fike->Invalidate Caches/Restart 清除緩存並重啓 idea
2.右鍵 --> maven -->reimport
3.重啓電腦
4.檢查porm文件依賴關係是否正確
#未完待續,以後遇到會繼續spring2.0的問題會繼續更新