spring boot無法啟動,或者正常啟動之后無法訪問報404的解決辦法


   前言    

   以前用spring boot都是用idea的自動創建,或者是用的Jhipster創建的,就沒有深究怎么去搭建。但是今天晚上心血來潮,想自己搭一個demo來整合一些技術,於是就花一點時間來手動搭。因為今天網絡有點不好,所以spring boot的官網一直打不開,也就導致了無法閱讀官方文檔,就按照自己的記憶去搭於是遇到了以下兩個問題

   正文

    如果已經引入了spring boot 的包 :

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.2.RELEASE</version>
</parent>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

  

1 如果啟動失敗,一直報錯,是有可能 你的啟動類直接放在了 src.java.main 下面 ,這是錯誤的,你需要將您的啟動類放在 src.java.main.* 以下 例如 src.java.main.com.dai.test 下面
2 如果啟動成功,但是卻訪問不了你自己寫的controller,報404錯誤,那么原因就是您寫的controller沒有被spring 容器掃描到
解決方案: spring boot 默認掃描您的類是 在啟動類的當前包 和 下級包 。比如: 您的啟動類(TestStart.java)在 com.dai.test 下(com.dai.test.TestStart.java) 那么spring 會掃描 com.dai.test
和 com.dai.test.* 如果你的controller(TestController.java)沒有放在com.dai.test或者com.dai.test.* 下的話,就不會被掃描到,就會發生404錯誤.
還有一種解決方案是 ,配置spring 掃描路徑
在啟動類的上面添加 @ComponentScan(basePackages = {"com.dai.*"}),這配您的controller所在的包

×××××再放一個了××××解決404問題,通過spring的log去看(這個方法主要檢測是不是你的路徑配錯了,用於查看代碼是否有問題)
在spring boot的啟動log里面,有一個RquestMappingHandlerMapping 的log,你們具體可以看看你們寫的controller有沒有被mapping

s.w.s.m.m.a.RequestMappingHandlerMapping :

Mapped "{[/consumer/user/getUser],methods=[POST]}" onto public com.dai.cloud.response.UserResponse com.dai.cloud.consumer.controller.UserController.getUser(java.lang.String)

這個就是一個log的demo ,意思就是已經將

public com.dai.cloud.response.UserResponse com.dai.cloud.consumer.controller.UserController.getUser(java.lang.String)

這個方法 mapping 到了 /consumer/user/getUser這個 POST路徑。 你們可以檢查下看看你們有沒有對應的log




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM