springboot訪問(wèn)404問(wèn)題的解決辦法
第一次自主開(kāi)發(fā)springboot項(xiàng)目,沒(méi)想到一開(kāi)始就這么受挫,不管訪問(wèn)什么路徑都是404,幾乎十二個(gè)小時(shí)都在找這個(gè)錯(cuò)誤。
并且排除:
- 路徑寫錯(cuò)
- application類不和controller包在同一個(gè)包下
等問(wèn)題后,如下解決方法可能會(huì)對(duì)你有所幫助。
誤區(qū)1:
在請(qǐng)求返回404的時(shí)候控制臺(tái)不報(bào)錯(cuò),一度以為是Initializing Spring DispatcherServlet 'dispatcherServlet'這個(gè)錯(cuò)誤。原因是請(qǐng)求的時(shí)候返回404,只有控制臺(tái)會(huì)多出來(lái)三行日志:

所以一直在搜索Initializing Spring DispatcherServlet相關(guān)的報(bào)錯(cuò)。不過(guò)很遺憾,幾乎找遍了所有的博客,依然沒(méi)有解決問(wèn)題。我也相信搜索行日志的兄弟們也碰到了這個(gè)問(wèn)題,但是這里要說(shuō)的是,這行日志是正常的。我由重新創(chuàng)建了一個(gè)springboot項(xiàng)目,在請(qǐng)求成功的情況下發(fā)現(xiàn)控制臺(tái)也會(huì)打印這三行日志。
誤區(qū)2:
誤區(qū)2是建立在誤區(qū)1以上的,因?yàn)榇蠹艺J(rèn)為Initializing Spring DispatcherServlet是錯(cuò)誤,所以去尋找相關(guān)的方法。其中有一個(gè)方法是配置文件中做如下修改。

但就經(jīng)過(guò)我的觀察,Initializing Spring DispatcherServlet在整個(gè)項(xiàng)目啟動(dòng)期間只打印一次,也就是說(shuō)這個(gè)DispatcherServlet只初始化一次。(有點(diǎn)廢話哈哈哈)以上這個(gè)配置是在項(xiàng)目啟動(dòng)的時(shí)候就初始化這個(gè)DispatcherServlet,如果不設(shè)置或者者設(shè)置為負(fù)數(shù),那么就是等待第一次請(qǐng)求到來(lái)的時(shí)候初始化這個(gè)DispatcherServlet。大家可以自己試一試,看看是不是添加了上面的配置再啟動(dòng)項(xiàng)目,直接就會(huì)打印那三行日志,而不是等待請(qǐng)求到來(lái)的時(shí)候再打印。
問(wèn)題解決:
問(wèn)題其實(shí)很簡(jiǎn)單,因?yàn)槲覀兪褂昧薂ComponentScan這個(gè)注解,在正常的springboot中是不需要使用這個(gè)注解的,所以application類會(huì)自動(dòng)掃描自己所在的包和子包的所有文件。但是如果使用了這個(gè)注解,那默認(rèn)的就失效了。這里使用@ComponentScan注解的原因可以五花八門,我是因?yàn)橐肓艘粋€(gè)自動(dòng)建表的依賴,跟著教程做在application類上面添加了一個(gè)ComponentScan,所以解決方案就是將application類所在的包路徑加進(jìn)去就行。

本質(zhì)上還是對(duì)這些注解不夠敏感,花了大量的事件做無(wú)用功,但好在解決了。
總結(jié)
到此這篇關(guān)于springboot訪問(wèn)404問(wèn)題解決的文章就介紹到這了,更多相關(guān)springboot訪問(wèn)404解決內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解SpringBoot可執(zhí)行Jar包運(yùn)行原理
SpringBoot有一個(gè)很方便的功能就是可以將應(yīng)用打成可執(zhí)行的Jar,那么大家有沒(méi)想過(guò)這個(gè)Jar是怎么運(yùn)行起來(lái)的呢,本篇博客就來(lái)介紹下 SpringBoot可執(zhí)行Jar包的運(yùn)行原理,需要的朋友可以參考下2023-05-05
Java如何實(shí)現(xiàn)Unicode和中文相互轉(zhuǎn)換
這篇文章主要介紹了Java如何實(shí)現(xiàn)Unicode和中文相互轉(zhuǎn)換問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01
Netty與Spring Boot的整合實(shí)現(xiàn)
這篇文章主要介紹了Netty與Spring Boot的整合的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
Spring循環(huán)依賴實(shí)現(xiàn)過(guò)程揭秘
這篇文章主要介紹了Spring循環(huán)依賴實(shí)現(xiàn)過(guò)程,Spring的解決循環(huán)依賴是有前置條件的,要解決循環(huán)依賴我們首先要了解Spring Bean對(duì)象的創(chuàng)建過(guò)程和依賴注入的方式2023-01-01
解決java.lang.IllegalStateException:Duplicate key異常問(wèn)題
java.lang.IllegalStateException:Duplicatekey異常在將List轉(zhuǎn)換為Map時(shí)出現(xiàn),解決方法是使用toMap()的重載方法,如果已經(jīng)存在則不再修改,直接使用上一個(gè)數(shù)據(jù)2025-03-03
java文件/圖片的上傳與下載以及MultipartFile詳解
文章介紹了MultipartFile類的使用,包括獲取文件名、文件類型、文件大小等方法,以及如何處理多文件上傳和文件大小限制,同時(shí)提供了文件上傳和下載的示例代碼2025-02-02
spring?@value無(wú)法取值多個(gè)properties文件的解決
這篇文章主要介紹了spring?@value無(wú)法取值多個(gè)properties文件的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
Java多線程Runable售票系統(tǒng)實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Java多線程Runable售票系統(tǒng)實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java ThreadLocal的使用場(chǎng)景總結(jié)
ThreadLocal原本設(shè)計(jì)是為了解決并發(fā)時(shí),線程共享變量的問(wèn)題,但由于過(guò)度設(shè)計(jì),從而導(dǎo)致它的理解難度大和使用成本高等問(wèn)題。即便如此,ThreadLocal依舊有適合自己的使用場(chǎng)景,比如本文要介紹了這兩種使用場(chǎng)景,除了ThreadLocal之外,還真沒(méi)有合適的替代方案。2021-05-05

