第一次自主開發springboot項目,沒想到一開始就這麼受挫,不管訪問什麼路徑都是404,幾乎十二個小時都在找這個錯誤。
路徑寫錯
#application類別不和controller包在同一個套件下
等問題後,如下解決方法可能會對你有幫助。
在請求回傳404的時候控制台不報錯,一度以為是Initializing Spring DispatcherServlet 'dispatcherServlet'這個錯誤。原因是請求的時候回傳404,只有控制台會多出來三行日誌:
#所以一直在搜尋Initializing Spring DispatcherServlet相關的報錯。不過很遺憾,幾乎找遍了所有的博客,依然沒有解決問題。我也相信搜尋行日誌的兄弟們也碰到了這個問題,但這裡要說的是,這行日誌是正常的。我由重新建立了一個springboot項目,在請求成功的情況下發現控制台也會列印這三行日誌。
迷思2是建立在迷思1以上的,因為大家認為Initializing Spring DispatcherServlet是錯誤,所以去尋找相關的方法。其中有一個方法是設定檔中做如下修改。
但就經過我的觀察,Initializing Spring DispatcherServlet在整個專案啟動期間只列印一次,也就是說這個DispatcherServlet只初始化一次。 (有點廢話哈哈哈)以上這個配置是在專案啟動的時候就初始化這個DispatcherServlet,如果不設定或者設定為負數,那麼就是等待第一次請求到來的時候初始化這個DispatcherServlet。大家可以自己試試看,看看是不是新增了上面的設定再啟動項目,直接就會列印那三行日誌,而不是等待請求到來的時候再列印。
問題其實很簡單,因為我們使用了@ComponentScan這個註解,在正常的springboot中是不需要使用這個註解的,所以application類別會自動掃描自己所在的包和子包的所有文件。但是如果使用了這個註解,那麼預設的就失效了。這裡使用@ComponentScan註解的原因可以五花八門,我是因為引入了一個自動建表的依賴,跟著教程做在application類上面添加了一個ComponentScan,所以解決方案就是將application類所在的包路徑加進去就行。
本質上還是對這些註解不夠敏感,花了大量的事件做無用功,但好在解決了。
以上是springboot存取404問題如何解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!