springboot配置文件屬性變量引用方式${}和@@用法及區(qū)別說(shuō)明
配置文件屬性變量引用${}和@@用法
${}和@@都是springboot引用屬性變量的方式
具體區(qū)別與用法:
${}常用于pom.xml
和 src/main/resources/application.properties等默認(rèn)配置文件的屬性變量引用。
語(yǔ)法為:field_name=${field_value}
pom.xml示例:
<properties> ? ? <dubbo.version>2.7.0</dubbo.version> </properties> ? ?<dependencies> ? ? ?<dependency> ? ? ? ? ?<groupId>org.apache.dubbo</groupId> ? ? ? ? ? <artifactId>dubbo</artifactId> ? ? ? ? ? <version>${dubbo.version}</version> ? ? ?</dependency> ?</dependencies>
application.properties示例:
#logback日志配置 log.config.address=classpath:config/logback-spring.xml logging.config=${log.config.address}
@@方式常用于引用springboot非默認(rèn)配置文件
(即其他配置文件)中的變量,是springboot為替代${}屬性占位符產(chǎn)生,原因是${}會(huì)被maven處理,所以引用非默認(rèn)配置文件時(shí)起不到引用變量的作用。
語(yǔ)法為:field_name=@field_value@
示例:
在實(shí)際項(xiàng)目開(kāi)發(fā)中,為了在不同環(huán)境進(jìn)行測(cè)試,我們會(huì)在src/main/resources目錄下創(chuàng)建config文件夾,并在config中創(chuàng)建多個(gè)properties文件
例如:
local.properties, development.properties, production.properties,當(dāng)我們?cè)趕rc/main/resources/application.properties文件中引用src/main/resources/config/local.properties的屬性變量時(shí),就要使用@@方式
#端口配置 server.port=@server.port.web@ ? #logback日志配置 logging.config=@logging.config@
配置文件中的“@”問(wèn)題
springboot配置文件中的${…}和@…@
在springboot的配置文件中,即application.properties或application.yml
${}最好用于取springboot配置文件配置得值
@@引用其他文件(除springboot配置文件,像pom.xml)中定義的值, 用@ @
起因
從git拉取下來(lái)的代碼,改一下數(shù)據(jù)庫(kù)配置什么的開(kāi)始運(yùn)行。
報(bào)錯(cuò):
found character '@' that cannot start any token. (Do not use @ for indentation)
in 'reader', line 34, column 19:
password: @spring.redis.password@
不應(yīng)該阿,正常來(lái)說(shuō)這里不應(yīng)該報(bào)錯(cuò)。
原因
我猜測(cè)是有時(shí)候的編譯沒(méi)完全編譯,看到編譯后的文件里的內(nèi)容并不是從pom.xml文件中讀取的數(shù)據(jù),顯然是這塊沒(méi)有編譯。
解決
打開(kāi)側(cè)邊欄的maven,點(diǎn)擊圖中兩個(gè)按鈕刷新下項(xiàng)目。再次啟動(dòng)完美運(yùn)行。還是不行就清理下緩存再刷新。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
redis.clients.jedis.exceptions.JedisMovedDataException異常解決
redis.clients.jedis.exceptions.JedisMovedDataException?異常是在使用?Jedis?客戶端與?Redis?集群進(jìn)行交互時(shí)發(fā)生的,下面就來(lái)介紹一下解決方法,感興趣的可以了解一下2024-05-05SpringBoot結(jié)合Redis配置工具類實(shí)現(xiàn)動(dòng)態(tài)切換庫(kù)
本文主要介紹了SpringBoot結(jié)合Redis配置工具類實(shí)現(xiàn)動(dòng)態(tài)切換庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08java輸入時(shí)如何通過(guò)回車(enter)來(lái)結(jié)束輸入
這篇文章主要介紹了java輸入時(shí)如何通過(guò)回車(enter)來(lái)結(jié)束輸入,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Java獲取CPU和內(nèi)存占用率最簡(jiǎn)單的方法
這篇文章主要介紹了Java獲取CPU和內(nèi)存占用率最簡(jiǎn)單的方法,文中通過(guò)代碼示例和圖文結(jié)合的方式給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-06-06Java中的break和continue關(guān)鍵字的使用方法總結(jié)
下面小編就為大家?guī)?lái)一篇Java中的break和continue關(guān)鍵字的使用方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11