您好,登錄后才能下訂單哦!
這期內(nèi)容當中小編將會給大家?guī)碛嘘P(guān)怎么在Springboot中引用外部配置文件,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
首先想到的是通過java代碼讀取外邊某個路徑下的文件,但是開始做之后發(fā)現(xiàn)好多問題。后來又找其它解決方案,正好搜到一種簡單的解決方式:
java -jar demo.jar --Dspring.config.location=myapplication.properties
這樣就可以通過@value注解讀取myapplication.properties中的配置信息了。(上邊的大寫D好像可以不寫的)
后來想著直接把spring.config.location寫到application.properties配置文件中,然后指定一個固定的外部配置文件來獲取信息,這樣啟動的時候就可以不用加最后一行了。
spring.config.location=C:\\Users\\Administrator\\git\\Display\\host.properties
可是這種方式是行不通的,比如我配置文件中有下面信息:
myname=hellopangkunkun
代碼:
myname=hellopangkunkun
我在啟動的時候直接報這個地方的錯誤,說是無法找到myname,導致整個項目出異常。
后來搜了下文章,對比官網(wǎng)文檔,又得到了一些信息:
24.3 Application property files
SpringApplication will load properties from application.properties files in the following locations and add them to the Spring Environment:A /config subdirectory of the current directory.
The current directory
A classpath /config package
The classpath root
The list is ordered by precedence (properties defined in locations higher in the list override those defined in lower locations).
這里說了四種方式可以把配置文件放到外部的。
第一種是在jar包的同一目錄下建一個config文件夾,然后把配置文件放到這個文件夾下;
第二種是直接把配置文件放到j(luò)ar包的同級目錄;
第三種在classpath下建一個config文件夾,然后把配置文件放進去;
第四種是在classpath下直接放配置文件。
這四種方式的優(yōu)先級是從一到四一次降低的。
注: 一二兩種方案其實不是jar包的同級目錄,而是(執(zhí)行啟動指令的)同級目錄。為了便于理解我把上面的當前目錄說成jar包的同級目錄,這種說法并不對。如果是剛開始接觸或者調(diào)試這塊,還是在jar包同級目錄方便。
由于我們是要從外部讀取文件,所以直接說前兩種。
看下文件目錄結(jié)構(gòu):
這里的application.properties是我們的配置文件,config是創(chuàng)建的另外一個目錄,放的也是application.properties。
Display-1.0-SNAPSHOT.jar中可以包含application.properties配置文件也可以不包含。
為了驗證可以在config中設(shè)置myname=name1,jar同級目錄中設(shè)置myname=name2,如果jar中包含配置文件,將其中設(shè)置成myname=name3。
直接使用指令啟動:
java -jar Display-1.0-SNAPSHOT.jar
之后驗證可得知,我們通過@Value(“${myname}”)獲取到的myname的值是name1,把config下的配置文件刪除后獲取的結(jié)果是name2,都刪除后才會獲取jar包中配置文件的數(shù)據(jù)name3。
另外如果我們想要想配置測試、開發(fā)、生產(chǎn)環(huán)境一樣使用另外一個配置文件怎么來實現(xiàn)呢?
下面繼續(xù),我把application.properties的信息修改如下:
spring.profiles.active=dev,host
配置文件目錄結(jié)構(gòu):
我又新增了一個名為application-host.properties的配置文件,同理也可以把這個文件考出來放到j(luò)ar包外面,同級目錄或者config下。
這樣項目啟動之后dev配置文件和host配置文件都會生效。
springboot一種全新的編程規(guī)范,其設(shè)計目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程,SpringBoot也是一個服務(wù)于框架的框架,服務(wù)范圍是簡化配置文件。
上述就是小編為大家分享的怎么在Springboot中引用外部配置文件了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。