解決spring boot創(chuàng)建項(xiàng)目遇到配置的問(wèn)題
spring boot創(chuàng)建項(xiàng)目遇到配置的問(wèn)題
今天在創(chuàng)建spring-boot時(shí)遇到一個(gè)讀取不到application.properties的問(wèn)題,正常是將此文件放在src/main/resouces的子目錄下,但是有時(shí)候?yàn)榱朔奖愎芾硭孕枰獙⑽恢棉D(zhuǎn)移。
如下圖所示

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

這種的 我們就需要一個(gè)版本高于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文件夾下找到這么個(gè)文件

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

問(wèn)題解決(此處finalName取決于項(xiàng)目)。
2.定義同一版本的spring組件
在pom文件中添加如下引用
org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE
添加之后就會(huì)自動(dòng)下載spring和springMvc相關(guān)的包了,之后也不需要再次引用spring和springMvc相關(guān)的jar包了,否則會(huì)出現(xiàn)jar包版本的沖突(具體效果為添加引用之后會(huì)以黃色波浪線在版本號(hào)下面提示警告)
其他的引用根據(jù)自己的需求添加。
3.添加配置文件
在更新項(xiàng)目后(alt+f5)在resources目錄下添加一個(gè)配置文件(yml格式),具體樣板百度一搜一大把,這里放一個(gè)我自己用的

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

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

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

