SpringBoot 啟動報錯:Failed to configure a DataSource: ‘url‘ attribute is not specified and no emb

目錄

  • 一、報錯日志
  • 二、原因分析
  • 三、問題排查
  • 四、解決方案
    • 方案一:如果項目不需要數據庫相關信息就排除此類的autoconfig
    • 方案二:配置文件添加數據庫鏈接信息
    • 方案三:配置pom.xml中yml或者properties掃描

一、報錯日志

***************************
APPLICATION FAILED TO START
***************************Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consider the following:If you want an embedded database (H2, HSQL or Derby), please put it on the classpath.If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active).Process finished with exit code 1

二、原因分析

根據報錯日志分析是在 SpringBoot 項目啟動的時候沒有找到 database 數據庫連接地址,我們知道在 SpringBoot 啟動的時候會默認加載org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 這個類,而 DataSourceAutoConfiguration 類使用了 @Configuration 注解向spring注入了dataSource bean,又因為項目中并沒有關于 dataSource 相關的配置信息,所以當spring創建dataSource bean時因缺少相關的信息就會報錯。


三、問題排查

  • 檢查 pom.xml 項目數據庫 jar 是否引用;

  • 查看 .properties.yml 配置文件是否配置數據庫鏈接池;

  • 查看 spring - datasource - url 配置的地址格式錯誤需要轉義等;

  • yml 或者 properties 文件可能沒有被掃描到(情況比較少,如果按照標準命名都會被默認掃描);


四、解決方案

方案一:如果項目不需要數據庫相關信息就排除此類的autoconfig

@SpringBootApplication 注解上加上 exclude ,解除自動加載DataSourceAutoConfiguration

@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})

springboot啟動類加上這個啟動以后就可以正常運行。完整代碼:

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class Application {public static void main(String[] args) {SpringApplication.run(Application, args);}
}

方案二:配置文件添加數據庫鏈接信息

.properties 文件添加數據庫配置信息(以mysql為例):

spring.datasource.name=test
spring.datasource.url=jdbc:mysql://localhost:3306/test 
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

.yml 文件添加數據庫配置信息(已mysql為例):

spring:datasource:name: testurl: jdbc:mysql://localhost:3306/testusername: rootpassword: 123456driver-class-name: com.mysql.jdbc.Driver

方案三:配置pom.xml中yml或者properties掃描

需要在 pom 文件中 <build> 中添加如下來保證文件都能正常被掃描到并且加載成功。

<!-- 如果不添加此節點mybatis的mapper.xml文件都會被漏掉。 -->
<resources><resource><directory>src/main/java</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><resource><directory>src/main/resources</directory><includes><include>**/*.yml</include><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource>
</resources>



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/446721.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/446721.shtml
英文地址,請注明出處:http://en.pswp.cn/news/446721.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

codeforces 339A-C語言解題報告

339A題目網址 題目解析 1.輸入如321的式子,升序排序(從小到大)成123 舉例: 輸入: 11313 輸出: 11133 2.對字符串進行排序采取拍冒泡排序算法 char c0; for(i0;i<strlen(s)-1;i) {for(j0;j<strlen(s)-1;j){if(s[j]>s[j1]){cs[j];s[j]s[j1];s[j1]c;}} }代碼 #includ…

C++primer第九章 順序容器 9.3 順序容器操作

9.3順序容器操作 順序容器和關聯容器的不同之處在于兩者組織元素的方式。這些不同之處直接關系到了元素如何存儲、訪問、添加以及刪除。上一節介紹了所有容器都支持的操作&#xff08;羅列于表9.2&#xff08;第295頁&#xff09;&#xff09;。本章剩余部分將介紹順序容器所特…

SpringBoot 集成Nacos報錯(一)

目錄配置信息報錯信息解決方案配置信息 <project><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.2</version><relativePath/></parent>…

C++primer第九章 順序容器 9.4 vector對象是如何增長的

為了支持快速隨機訪問&#xff0c;vector將元素連續存儲&#xff0c;每個元素緊挨著前一個元素存儲。通常情況下&#xff0c;我們不必關心一個標準庫類型是如何實現的&#xff0c;而只需關心它如何使用。然而&#xff0c;對于vector和string,其部分實現滲透到了接口中。假定容器…

codeforces 281A-C語言解題報告

281A題目網址 題目解析 1.字符串首字母大寫 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.h> int main() {char s[1000]{\0};scanf("%s",s);if(s[0]>A&&s[0]<Z){printf("%s",s…

SpringBoot 配置文件bootstrap和application的區別

目錄一、SpringBoot配置文件二、bootstrap和application區別三、bootstrap和application的應用場景一、SpringBoot配置文件 bootstrap&#xff08;.yml 或者 .properties&#xff09; application&#xff08;.yml 或者 .properties&#xff09; 二、bootstrap和application區…

C++primer第九章 順序容器 9.5 額外的string操作

除了順序容器共同的操作之外&#xff0c;string類型還提供了一些額外的操作。這些操作中 的大部分要么是提供string類和C 風格字符數組之間的相互轉換,要么是增加了允許我們用下標代替迭代器的版本。標準庫string類型定義了大量函數。幸運的是&#xff0c;這些函數使用了重復的…

Zookeeper Mac下安裝操作

目錄一、下載Zookeeper二、修改配置1、設置啟動配置文件2、修改配置三、啟動Zookeeper服務命令1、bin目錄下執行&#xff08;1&#xff09;啟動Zookeeper命令&#xff08;2&#xff09;查看Zookeeper狀態命令&#xff08;3&#xff09;停止Zookeeper命令2、配置環境變量執行&am…

codeforces 266A-C語言解題報告

266A題目網址 題目解析 1.輸入n(1–50)個石頭個數,輸入RGB的石頭顏色,求問拿走最小的石頭個數,讓它們相鄰的石頭顏色不同 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {int n,i,count0;char s[50]{\0};scanf("%d&quo…

2014年考研英語二作文PartB圖表題

作文詳細解析 題目 Write an essay based on the following chart, in which you should interpret the chart, and give your comments You should write about 150 words on the ANSWER SHEET.(15 points) 注意點 1.圖表題在第一段描述圖表信息時,一定要寫清楚y軸變化…

Zookeeper 終端命令

目錄一、服務端命令1、啟動Zookeeper服務命令2、查看Zookeeper狀態命令3、停止Zookeeper服務命令4、啟動Zookeeper客戶端命令二、客戶端命令1、查看幫助2、查看當前znode所包含的內容3、創建znode4、創建短暫znode5、創建帶序號znode6、創建短暫帶序號znode7、獲取znode數據8、…

C++primer第九章 順序容器 9.6 容器適配器

9.6容器適配器 除了順序容器外&#xff0c;標準庫還定義了三個順序容器適配器&#xff1a;stack、queue和priority_queue適配器(adaptor)是標準庫中的一個通用概念。容器、迭代器和函數<369I都有適配器。本質上&#xff0c;一個適配器是一種機制&#xff0c;能使某種事物的…

codeforces 236A-C語言解題報告

236題目網址 題目解析 1.輸入字符串,判斷其中不同的字符個數,奇偶輸出不同的語句 2.使用冒泡排序去排序,當遇到s[k]!s[k1]時進行計數 代碼 #include<stdio.h> #include<stdlib.h> #include<string.h> int main() {char s [100]{\0};int i,j,k,count0;cha…

SpringBoot Controller接收參數的常用方式

文章目錄一、請求路徑參數1、PathVariable二、Body參數1、RequestParam2、RequestBody三、請求頭參數和Cookie參數1、RequestHeader2、CookieValue一、請求路徑參數 1、PathVariable 注解為&#xff1a; org.springframework.web.bind.annotation.PathVariable獲取路徑參數&…

C++primer第十章 泛型算法 10.1 概述 10.2 初識泛型算法

大多數算法都定義在頭文件algorithm中。標準庫還在頭文件numeric中定義了 一組數值泛型算法一般情況下&#xff0c;這些算法并不直接操作容器&#xff0c;而是遍歷由兩個迭代器指定的一個元素范圍(參見9.2.1節&#xff0c;第296頁)來進行操作。通常情況下&#xff0c;算法遍歷范…

MySQL Mac安裝教程

文章目錄一、下載安裝包二、安裝三、啟動MySQL四、環境變量設置一、下載安裝包 下載地址&#xff1a;https://downloads.mysql.com/archives/community/ 二、安裝 雙擊安裝包&#xff0c;然后一直點繼續即可。 三、啟動MySQL 打開 系統偏好設置&#xff0c;會發現多了一個…

codeforces 96A-C語言解題報告

96A題目網址 題目解析 1.輸入0和1表示不同隊的隊員字符串,如果7個及以上的一個0或1在一起,則輸出YES否則輸出NO 舉例: 輸入: 1000000001 輸出: YES 2.循環時,當遇到count7時輸出YES并跳出循環,遇到s[i]!s[i1]時,將count重置為1,最后count<7再輸出NO 代碼 #include<s…

C++生成指定范圍內的隨機數

代碼 rand&#xff08;&#xff09;% 3 &#xff1b; 3就是范圍&#xff0c;代表生成[0,3)之間的隨機數 int main(){for (int i 0; i < 20; i) {switch (rand() % 3) {case 0:std::cout << "00" << std::endl;case 1:std::cout << "11&q…

MySQL 客戶端命令

文章目錄1、連接命令2、斷開連接3、命令結束符4、查看所有數據庫5、切換到指定數據庫6、查看當前使用的數據庫7、查看庫中所有表8、查看所有用戶9、執行SQL腳本10、查詢當前時間1、連接命令 首先定位到MySQL安裝根目錄/bin目錄下&#xff0c;然后執行如下命令&#xff1a; my…

SQL 庫、表語句

文章目錄一、數據庫操作1、創建數據庫2、刪除數據庫二、表操作1、創建表&#xff08;1&#xff09;主鍵&#xff08;primary key&#xff09;屬性&#xff08;2&#xff09;unique屬性&#xff08;3&#xff09;主鍵和unique約束的區別&#xff08;4&#xff09;外鍵&#xff0…