springboot訪問請求404的原因及解決辦法
是記錄,可能出現(xiàn)錯誤
可能出現(xiàn)的原因
1.你請求的URL路徑不對,比如說你請求的路徑是/usr/list,GET方法,但是你UserController上面的RequestMapping是這個樣子:@RequestMapping(“user”),有可能哈
2.前端的請求時GET方法,后端對應的處理函數(shù)的方法是非GET方法
3.Controller和RestController注解混用了,兩個中刪除一個試試
4.訪問的是靜態(tài)資源,那么查看是否配置好了靜態(tài)資源,就是把靜態(tài)資源放到Resources下面的static文件夾中,也可以通過配置類來自定義存放路徑
下面是通過配置類的方式,來配置靜態(tài)資源存放的路徑
我的靜態(tài)資源是直接放在Resources下面的,新建一個類,類名隨意
繼承WebMvcConfigurationSupport重寫addResourceHandlers方法
在類上面加上@Configuration注解
@Configuration @Slf4j public class WebMvcConfig extends WebMvcConfigurationSupport { /** * 配置靜態(tài)資源映射 * * @param registry **/ @Override protected void addResourceHandlers(ResourceHandlerRegistry registry) { log.info("開始進行靜態(tài)資源映射"); //將路徑中包含backend的請求映射到backend文件夾下 //這句話的意思是,只要請求的是/backend下面的文件都映射到Resources下面的backend文件夾下面,classpath: registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/"); //上同 registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/"); } }
5.你的Controller類沒有被掃描到,這種情況一般是啟動類在一個包里面
解決辦法:
1、把你的啟動類從包里面拿出來,放到外面,如圖所示
2、用和MapperScan和scanBasePackages來指明需要掃描的包
如圖所示
3、項目中有多個SpringBootServletInitializer子類
此類問題表現(xiàn)是,項目按模塊劃分,多個模塊內(nèi)包含Controller。在開發(fā)調(diào)試階段正常,單獨運行每個模塊也正常;使用tomcat部署后,總會隨機出現(xiàn)一些模塊的Controller訪問不了的情況。
這種情況,多是因為每個模塊都創(chuàng)建了SpringBootServletInitailizer子類。
解決辦法就是只保留入口模塊的SpringBootServletInitialzer子類即可
補充:
若是線上部署階段排錯思路
1.確定資源確實是存在的
2.隨機測試幾個接口,看看是否都是404。
- 如果都是404,很可能是nginx配置錯誤
- 如果部分404,且是按模塊404,查看項目中是否有多個SpringBootServletInitializer子類
總結(jié)
到此這篇關(guān)于springboot訪問請求404的原因及解決辦法的文章就介紹到這了,更多相關(guān)springboot訪問請求404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺析springboot通過面向接口編程對控制反轉(zhuǎn)IOC的理解
這篇文章主要介紹了springboot通過面向接口編程對控制反轉(zhuǎn)IOC的理解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-08-08SpringBoot調(diào)用第三方接口的幾種方式小結(jié)
在項目中調(diào)用第三方接口時,確實需要根據(jù)項目的技術(shù)棧、架構(gòu)規(guī)范以及具體的業(yè)務(wù)需求來選擇最適合的調(diào)用方式,下面我們就介紹幾種調(diào)用第三方接口的實現(xiàn)方式以及代碼示例,需要的朋友可以參考下2024-07-07spring和quartz整合,并簡單調(diào)用(實例講解)
下面小編就為大家?guī)硪黄猻pring和quartz整合,并簡單調(diào)用(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07java的三種隨機數(shù)生成方式的實現(xiàn)方法
這篇文章主要介紹了java的三種隨機數(shù)生成方式的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09spring 整合 mybatis 中數(shù)據(jù)源的幾種配置方式(總結(jié)篇)
因為spring 整合mybatis的過程中, 有好幾種整合方式,尤其是數(shù)據(jù)源那塊,經(jīng)常看到不一樣的配置方式,總感覺有點亂,所以今天有空總結(jié)下,感興趣的朋友跟隨腳本之家小編一起學習吧2018-05-05java快速解析路徑中的參數(shù)(&與=拼接的參數(shù))
這篇文章主要介紹了java快速解析路徑中的參數(shù)(&與=拼接的參數(shù)),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2024-02-02