解決spring boot創(chuàng)建項(xiàng)目遇到配置的問題
spring boot創(chuàng)建項(xiàng)目遇到配置的問題
今天在創(chuàng)建spring-boot時遇到一個讀取不到application.properties的問題,正常是將此文件放在src/main/resouces的子目錄下,但是有時候?yàn)榱朔奖愎芾硭孕枰獙⑽恢棉D(zhuǎn)移。
如下圖所示
此圖中我是將文件放在src/main/resouces的propertiesConfig目錄下,所以直接運(yùn)行項(xiàng)目會找不到該文件,此時會報(bào)以下錯誤:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private javax.sql.DataSource org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.dataSource; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceAutoConfiguration$NonEmbeddedConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
需要修改sping運(yùn)行時讀取的地址
@PropertySource("classpath:propertiesConfig/Application.properties")
加上此注解就可以。此注解是加載application上的
對了,不知道為啥要在application這個類上加上@EnableAutoConfiguration這個注解
SpringBoot項(xiàng)目創(chuàng)建及一些常見問題處理
SpringBoot是個Spring和SpringMVC的整合升級版,通過配置文件中的注解可以省去大量的配置,減少配置代碼,同時它自帶了tomcat組件,省去了引入tomcat組件的步驟
所以SpringBoot項(xiàng)目如何創(chuàng)建?
1.先創(chuàng)建一個maven項(xiàng)目,確保可以正常使用
這里扯一句,有些時候maven項(xiàng)目創(chuàng)建后會報(bào)這樣一個錯:
這種的 我們就需要一個版本高于web Module 2.5的架構(gòu)了↓
<?xml version="1.0" encoding="UTF-8"?> CreateMaven index.html index.htm index.jsp default.html default.htm default.jsp
然后在項(xiàng)目路徑下的settings文件夾下找到這么個文件
打開,找到這么一句(此處我的版本號為2.3)
↑修改版本號為3.0
然后在pom文件添加這么一段
問題解決(此處finalName取決于項(xiàng)目)。
2.定義同一版本的spring組件
在pom文件中添加如下引用
org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE
添加之后就會自動下載spring和springMvc相關(guān)的包了,之后也不需要再次引用spring和springMvc相關(guān)的jar包了,否則會出現(xiàn)jar包版本的沖突(具體效果為添加引用之后會以黃色波浪線在版本號下面提示警告)
其他的引用根據(jù)自己的需求添加。
3.添加配置文件
在更新項(xiàng)目后(alt+f5)在resources目錄下添加一個配置文件(yml格式),具體樣板百度一搜一大把,這里放一個我自己用的
可以發(fā)現(xiàn)這些配置都是原先ssm中的配置,現(xiàn)在通過這些注解就可以完成之前三個配置文件才能完成的配置,具體內(nèi)容根據(jù)自己的進(jìn)行修改即可。
關(guān)于log配置部分:記錄日志的配置,具體配置↓
同樣的丟進(jìn)resources目錄下
4.啟動類
springboot本身整合了tomcat功能,那怎么去啟動項(xiàng)目?
我們需要一個特殊的springboot啟動類,可以理解為是一個main方法,當(dāng)它運(yùn)行時就啟動了tomcat的功能。這個類因?yàn)閱訒r會加載當(dāng)前目錄及其子目錄下的所有類,因此直接丟進(jìn)項(xiàng)目根目錄。具體寫法如下
5.啟動項(xiàng)目
寫好之后clear項(xiàng)目,運(yùn)行啟動類。
這里有個小不同,springboot項(xiàng)目啟動時不再需要寫上項(xiàng)目名,直接寫上端口/要訪問的頁面 即可,在原ssm項(xiàng)目中還需要寫上項(xiàng)目名。
總結(jié)一下具體流程好了:運(yùn)行啟動類,啟動了內(nèi)置tomcat→通過啟動類中的注解@MapperScan讀取到Dao層→加載.yml配置文件,讀取端口,建立數(shù)據(jù)庫連接,再讀取mapper文件等配置→Service、Controller層和spring流程一致→Service中通過自動裝配記錄了Dao層、Controller同樣方法記錄了Service層→Controller層連接前端,完成數(shù)據(jù)展示。
關(guān)于配置文件報(bào)錯的問題:一般導(dǎo)入yml文件后其中的語句并不會提示報(bào)錯,請自行下載適合當(dāng)前eclipse版本的sts包,導(dǎo)入。另外常見的問題有注解的冒號之后需要有個空格、#為注釋之類的問題,都會導(dǎo)致啟動階段報(bào)錯,需要仔細(xì)排查。再有就是可能會出現(xiàn)jar包讀取的問題導(dǎo)致沖突進(jìn)而啟動報(bào)錯,此時可以考慮根目錄jar包全部刪除重新下載或者注釋pom文件重新加載。
解決以上問題之后就可以愉快的開始寫具體的項(xiàng)目邏輯了。以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
- IDEA下創(chuàng)建SpringBoot+MyBatis+MySql項(xiàng)目實(shí)現(xiàn)動態(tài)登錄與注冊功能
- 詳解SpringBoot項(xiàng)目的創(chuàng)建與單元測試
- IDEA創(chuàng)建SpringBoot的maven項(xiàng)目的方法步驟
- eclipse創(chuàng)建springboot項(xiàng)目的三種方式總結(jié)
- IDEA教程創(chuàng)建SpringBoot前后端分離項(xiàng)目示例圖解
- springboot創(chuàng)建多module項(xiàng)目的實(shí)例
- SpringBoot?項(xiàng)目中創(chuàng)建線程池
- Spring?Boot?教程之創(chuàng)建項(xiàng)目的三種方式
相關(guān)文章
Springboot之自定義全局異常處理的實(shí)現(xiàn)
這篇文章主要介紹了Springboot之自定義全局異常處理的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08IntelliJ IDEA基于Maven構(gòu)建Java項(xiàng)目
在 Java 開發(fā)中,使用 Maven 是一種廣泛采用的構(gòu)建工具,本文主要介紹了IntelliJ IDEA基于Maven構(gòu)建Java項(xiàng)目,具有一定的參考價值,感興趣的可以了解一下2024-03-03java IO流 之 輸出流 OutputString()的使用
這篇文章主要介紹了java IO流 之 輸出流 OutputString()的使用的相關(guān)資料,需要的朋友可以參考下2016-12-12springboot 使用QQ郵箱發(fā)送郵件的操作方法
這篇文章主要介紹了springboot使用QQ郵箱發(fā)送郵件功能,本文通過實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10