springboot配置文件中屬性變量引用方式@@解讀
springboot配置文件中屬性變量引用@@
這種屬性應(yīng)用方式是field_name=@field_value@。
兩個@符號是springboot為替代${}屬性占位符產(chǎn)生,原因是${}會被maven處理,所以應(yīng)該是起不到引用變量的作用。
@@方式可以引用springboot非默認(rèn)配置文件(即其他配置文件)中的變量;
springboot默認(rèn)配置文件是src/main/resources/application.properties
引用屬性變量方式之@@和${}的用法
整理這篇文章,主要是項目中用到了此配置,由于之前并未這么配過,所以碰到了還真有點茫然。
熟悉的環(huán)境區(qū)分配置方式

直接在application.properties中配置spring.profiles.active屬性來區(qū)分環(huán)境即可。
@@到底是什么?
${}和@@都是springboot引用屬性變量的方式。
${}和@@的使用
1)${}的使用
最常用的就是在pom文件中對版本號的配置使用,比如如下:
<properties>
<swagger.version>2.8.0</swagger.version>
</properties>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
還有就是在配置文件或者.sh文件中的賦值操作,比如如下:
IMAGES_NAME=brain-health-openplatform
CONTAINER_NAME=brain-health-openplatform
APP_PORT=7701
APP_HOME=/home/admin/brain-health-openplatform
#啟動容器
docker run -d --name ${CONTAINER_NAME} -p ${APP_PORT}:${APP_PORT} -v ${APP_HOME}/logs:/logs ${CONTAINER_NAME}
2)@@的使用
@@方式常用于引用springboot非默認(rèn)配置文件(即其他配置文件)中的變量,是springboot為替代 屬 性 占 位 符 產(chǎn) 生 , 原 因 是 {}屬性占位符產(chǎn)生,原因是 屬性占位符產(chǎn)生,原因是{}會被maven處理,所以引用非默認(rèn)配置文件時起不到引用變量的作用。

就比如我們項目中yml是起到整體作用的,通過四個環(huán)境的配置文件,來注入不同的value值。自我感覺就和最開始的prod和test文件夾的效果是一樣的。
3)@@引入普通的value值
其實自己最開始的疑問并不是如何注入,而是看項目中的注入都是有歸屬關(guān)系的,就比如屬于server/spring or mybatis 又或者logging等。那么我就想配置一個普通的鏈接路徑,該如何弄呢?

其實想復(fù)雜了,只需要直接把properties中的key復(fù)制到y(tǒng)ml文件中,他就自動形成了鍵值對的形式。
# properties文件中: customer.brain.training=XXX brain.training.report=XXX train.path.source=XXX
# yml文件中的注入
customer:
brain:
training: @customer.brain.training@
brain:
training:
report: @brain.training.report@
train:
path:
source: @train.path.source@
// 項目中的使用,直接就是@value的正常形式
@Value("${customer.brain.training}")
private String CustomerBrainTrainingUrl;
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot集成Quartz實現(xiàn)定時任務(wù)的方法
Quartz是一個定時任務(wù)框架,其他介紹網(wǎng)上也很詳盡。這里要介紹一下Quartz里的幾個非常核心的接口。通過實例代碼給大家講解SpringBoot集成Quartz實現(xiàn)定時任務(wù)的方法,感興趣的朋友一起看看吧2020-05-05
javaweb學(xué)習(xí)總結(jié)——使用JDBC處理MySQL大數(shù)據(jù)
本篇文章主要介紹了JDBC處理MySQL大數(shù)據(jù),有時是需要用程序把大文本或二進(jìn)制數(shù)據(jù)直接保存到數(shù)據(jù)庫中進(jìn)行儲存的,非常具有實用價值,需要的朋友可以參考下。2016-11-11
Java中使用StackWalker和Stream API進(jìn)行堆棧遍歷
StackWalking API是添加到Java中最酷的(并且對大多數(shù)開發(fā)人員來說完全不切實際,一般不會用,除非深層跟蹤調(diào)優(yōu))的功能之一。在這篇簡短的文章中,我們將看到它是什么以及使用它有多么容易,很快的認(rèn)識它2018-09-09
Java中的信息摘要算法MessageDigest類用法詳解
這篇文章主要介紹了Java中的信息摘要算法MessageDigest類用法詳解,java.security.MessageDigest類為應(yīng)用程序提供信息摘要算法的功能,如MD5或SHA-1或SHA-256算法,信息摘要是安全的單向哈希函數(shù),它接收任意大小的數(shù)據(jù),并輸出固定長度的哈希值,需要的朋友可以參考下2024-01-01
BMIDE環(huán)境導(dǎo)入項目報編碼錯誤解決方案
這篇文章主要介紹了BMIDE環(huán)境導(dǎo)入項目報編碼錯誤解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10
java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法
這篇文章主要介紹了java實現(xiàn)酷狗音樂臨時緩存文件轉(zhuǎn)換為MP3文件的方法,涉及java針對文件操作的相關(guān)技巧,需要的朋友可以參考下2016-08-08

