解決spring boot創(chuàng)建項目遇到配置的問題
spring boot創(chuàng)建項目遇到配置的問題
今天在創(chuàng)建spring-boot時遇到一個讀取不到application.properties的問題,正常是將此文件放在src/main/resouces的子目錄下,但是有時候為了方便管理所以需要將位置轉(zhuǎn)移。
如下圖所示

此圖中我是將文件放在src/main/resouces的propertiesConfig目錄下,所以直接運行項目會找不到該文件,此時會報以下錯誤:
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運行時讀取的地址
@PropertySource("classpath:propertiesConfig/Application.properties")
加上此注解就可以。此注解是加載application上的
對了,不知道為啥要在application這個類上加上@EnableAutoConfiguration這個注解
SpringBoot項目創(chuàng)建及一些常見問題處理
SpringBoot是個Spring和SpringMVC的整合升級版,通過配置文件中的注解可以省去大量的配置,減少配置代碼,同時它自帶了tomcat組件,省去了引入tomcat組件的步驟
所以SpringBoot項目如何創(chuàng)建?
1.先創(chuàng)建一個maven項目,確保可以正常使用
這里扯一句,有些時候maven項目創(chuàng)建后會報這樣一個錯:

這種的 我們就需要一個版本高于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
然后在項目路徑下的settings文件夾下找到這么個文件

打開,找到這么一句(此處我的版本號為2.3)
↑修改版本號為3.0
然后在pom文件添加這么一段

問題解決(此處finalName取決于項目)。
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.添加配置文件
在更新項目后(alt+f5)在resources目錄下添加一個配置文件(yml格式),具體樣板百度一搜一大把,這里放一個我自己用的

可以發(fā)現(xiàn)這些配置都是原先ssm中的配置,現(xiàn)在通過這些注解就可以完成之前三個配置文件才能完成的配置,具體內(nèi)容根據(jù)自己的進(jìn)行修改即可。
關(guān)于log配置部分:記錄日志的配置,具體配置↓

同樣的丟進(jìn)resources目錄下
4.啟動類
springboot本身整合了tomcat功能,那怎么去啟動項目?
我們需要一個特殊的springboot啟動類,可以理解為是一個main方法,當(dāng)它運行時就啟動了tomcat的功能。這個類因為啟動時會加載當(dāng)前目錄及其子目錄下的所有類,因此直接丟進(jìn)項目根目錄。具體寫法如下

5.啟動項目
寫好之后clear項目,運行啟動類。
這里有個小不同,springboot項目啟動時不再需要寫上項目名,直接寫上端口/要訪問的頁面 即可,在原ssm項目中還需要寫上項目名。
總結(jié)一下具體流程好了:運行啟動類,啟動了內(nèi)置tomcat→通過啟動類中的注解@MapperScan讀取到Dao層→加載.yml配置文件,讀取端口,建立數(shù)據(jù)庫連接,再讀取mapper文件等配置→Service、Controller層和spring流程一致→Service中通過自動裝配記錄了Dao層、Controller同樣方法記錄了Service層→Controller層連接前端,完成數(shù)據(jù)展示。
關(guān)于配置文件報錯的問題:一般導(dǎo)入yml文件后其中的語句并不會提示報錯,請自行下載適合當(dāng)前eclipse版本的sts包,導(dǎo)入。另外常見的問題有注解的冒號之后需要有個空格、#為注釋之類的問題,都會導(dǎo)致啟動階段報錯,需要仔細(xì)排查。再有就是可能會出現(xiàn)jar包讀取的問題導(dǎo)致沖突進(jìn)而啟動報錯,此時可以考慮根目錄jar包全部刪除重新下載或者注釋pom文件重新加載。
解決以上問題之后就可以愉快的開始寫具體的項目邏輯了。以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實現(xiàn)List去重的幾種方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了Java中List去重的幾種常用方法總結(jié),文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)和參考價值,需要的小伙伴可以了解一下2023-09-09
在Linux系統(tǒng)上升級Java版本的兩種方法步驟
由于項目升級,需要將JDK7升級到JDK8,升級JDK的同時也要升級一些其他的版本,下面這篇文章主要給大家介紹了關(guān)于在Linux系統(tǒng)上升級Java版本的兩種方法步驟,需要的朋友可以參考下2024-09-09
Java+MySQL實現(xiàn)圖書管理系統(tǒng)(完整代碼)
這篇文章主要介紹了Java+MySQL實現(xiàn)圖書管理系統(tǒng)(完整代碼),本文給大家介紹的非常想詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
解決Weblogic部署war找不到spring配置文件的問題
這篇文章主要介紹了解決Weblogic部署war找不到spring配置文件的問題,具有很好的參考價值,希望對大家有所幫助。2021-07-07
SpringBoot集成JPA持久層框架,簡化數(shù)據(jù)庫操作
JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化規(guī)范。主要是為了簡化持久層開發(fā)以及整合ORM技術(shù),結(jié)束Hibernate、TopLink、JDO等ORM框架各自為營的局面。JPA是在吸收現(xiàn)有ORM框架的基礎(chǔ)上發(fā)展而來,易于使用,伸縮性強(qiáng)。2021-06-06
Java中繼承thread類與實現(xiàn)Runnable接口的比較
這篇文章主要介紹了Java中繼承thread類與實現(xiàn)Runnable接口的比較的相關(guān)資料,需要的朋友可以參考下2017-06-06
@Autowired與@Resource在實現(xiàn)對象注入時的區(qū)別
這篇文章主要介紹了@Autowired與@Resource在實現(xiàn)對象注入時的區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助2023-04-04

