【Springboot項目啟動異常】項目啟動,數據庫連接異常


今天使用Springboot 整合 MybatisPlus 准備寫一個Demo,在項目啟動時,頻繁出錯,在此記錄整個問題的解決過程

問題如下圖

 

 人工翻譯一遍,主要意思就是沒有檢測到數據庫驅動,也就是說沒有檢測到數據源相關的配置,

首先檢查maven和yml文件,是否有引入相關的依賴和對數據源的配置,但是查看maven 和 yml ,檢查后發現並沒有問題,如下圖所示

maven配置

 

 yml配置文件

 

 檢查完以后發現並沒有問題,這時首先排查是否是mybatis-plus的配置問題,於是按照官方的推薦配置去配置mybatis-plus,,如下:

 

 再次啟動項目,仍然報同樣的錯誤,,,啟動失敗;

這時百度發現是否是Spring-data-jdbc 和mybatis 沖突的原因導致,結果發現maven 配置中並沒有相關spring-data相關的依賴,因此排除這個因素

然后使用低版本的mybatisplus版本以及druid連接池的版本,發現不起作用,仍然會出現這個問題

最后回歸到問題的本質原因是沒有配置數據庫相關的信息,再次檢查相關的maven依賴

 

 發現druid連接池相關的依賴的scope 這里有疑問,這里使用的是provided,

這里補充一下maven 依賴scope各個配置:

    • compile
      默認scope為compile,表示為當前依賴參與項目的編譯、測試和運行階段,屬於強依賴。打包之時,會達到包里去。
    • test
      該依賴僅僅參與測試相關的內容,包括測試用例的編譯和執行,比如定性的Junit。
    • runtime
      依賴僅參與運行周期中的使用。一般這種類庫都是接口與實現相分離的類庫,比如JDBC類庫,在編譯之時僅依賴相關的接口,在具體的運行之時,才需要具體的mysql、oracle等等數據的驅動程序。
      此類的驅動都是為runtime的類庫。(但是runtime引入的jar包中的類,項目代碼里不能直接用,用了無法通過編譯,只能通過反射之類的方式來用。)
    • provided
      該依賴在打包過程中,不需要打進去,這個由運行的環境來提供,比如tomcat或者基礎類庫等等,事實上,該依賴可以參與編譯、測試和運行等周期,與compile等同。區別在於打包階段進行了exclude操作。
    • system
      使用上與provided相同,不同之處在於該依賴不從maven倉庫中提取,而是從本地文件系統中提取,其會參照systemPath的屬性進行提取依賴。
    • import
      這個是maven2.0.9版本后出的屬性,import只能在dependencyManagement的中使用,能解決maven單繼承問題,import依賴關系實際上並不參與限制依賴關系的傳遞性。

很顯然,,是這里出現了問題,去掉這個scope后,再次啟動,項目正常啟動:

 


免責聲明!

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



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