springboot配置文件中屬性變量引用方式@@解讀
springboot配置文件中屬性變量引用@@
這種屬性應(yīng)用方式是field_name=@field_value@。
兩個(gè)@符號(hào)是springboot為替代${}屬性占位符產(chǎn)生,原因是${}會(huì)被maven處理,所以應(yīng)該是起不到引用變量的作用。
@@方式可以引用springboot非默認(rèn)配置文件(即其他配置文件)中的變量;
springboot默認(rèn)配置文件是src/main/resources/application.properties
引用屬性變量方式之@@和${}的用法
整理這篇文章,主要是項(xiàng)目中用到了此配置,由于之前并未這么配過(guò),所以碰到了還真有點(diǎn)茫然。
熟悉的環(huán)境區(qū)分配置方式
直接在application.properties中配置spring.profiles.active屬性來(lái)區(qū)分環(huán)境即可。
@@到底是什么?
${}和@@都是springboot引用屬性變量的方式。
${}和@@的使用
1)${}的使用
最常用的就是在pom文件中對(duì)版本號(hào)的配置使用,比如如下:
<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 #啟動(dòng)容器 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)生,原因是{}會(huì)被maven處理,所以引用非默認(rèn)配置文件時(shí)起不到引用變量的作用。
就比如我們項(xiàng)目中yml是起到整體作用的,通過(guò)四個(gè)環(huán)境的配置文件,來(lái)注入不同的value值。自我感覺(jué)就和最開(kāi)始的prod和test文件夾的效果是一樣的。
3)@@引入普通的value值
其實(shí)自己最開(kāi)始的疑問(wèn)并不是如何注入,而是看項(xiàng)目中的注入都是有歸屬關(guān)系的,就比如屬于server/spring or mybatis 又或者logging等。那么我就想配置一個(gè)普通的鏈接路徑,該如何弄呢?
其實(shí)想復(fù)雜了,只需要直接把properties中的key復(fù)制到y(tǒng)ml文件中,他就自動(dòng)形成了鍵值對(duì)的形式。
# 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@
// 項(xiàng)目中的使用,直接就是@value的正常形式 @Value("${customer.brain.training}") private String CustomerBrainTrainingUrl;
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java實(shí)現(xiàn)為Word每一頁(yè)設(shè)置不同圖片水印的效果
Word中設(shè)置水印時(shí),可加載圖片設(shè)置為水印效果,但通常添加水印效果時(shí),會(huì)對(duì)所有頁(yè)面都設(shè)置成統(tǒng)一效果。所以本文為大家介紹了一個(gè)方法,可以實(shí)現(xiàn)對(duì)每一頁(yè)或者某個(gè)頁(yè)面設(shè)置不同的水印效果,需要的可以參考一下2022-02-02SpringBoot +Vue開(kāi)發(fā)考試系統(tǒng)的教程
這篇文章主要介紹了SpringBoot +Vue開(kāi)發(fā)考試系統(tǒng),支持多種題型:選擇題、多選題、判斷題、填空題、綜合題以及數(shù)學(xué)公式。支持在線考試,教師在線批改試卷。本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-05-05springboot學(xué)習(xí)之Thymeleaf模板引擎及原理介紹
本文主要介紹一下SpringBoot給我們推薦的Thymeleaf模板引擎,這模板引擎呢,是一個(gè)高級(jí)語(yǔ)言的模板引擎,他的這個(gè)語(yǔ)法更簡(jiǎn)單而且功能更強(qiáng)大,對(duì)springboot?Thymeleaf模板引擎相關(guān)知識(shí)感興趣的朋友一起看看吧2022-02-02SpringBoot參數(shù)驗(yàn)證10個(gè)技巧值得收藏
Spring Boot提供了內(nèi)置的驗(yàn)證注解,可以幫助簡(jiǎn)單、快速地對(duì)輸入字段進(jìn)行驗(yàn)證,例如檢查 null 或空字段、強(qiáng)制執(zhí)行長(zhǎng)度限制、使用正則表達(dá)式驗(yàn)證模式以及驗(yàn)證電子郵件地址,那么在Spring Boot應(yīng)用中如何做好參數(shù)校驗(yàn)工作呢,本文提供了10個(gè)小技巧感興趣的朋友一起看看吧2023-08-08java類中使用Jfreechart的簡(jiǎn)單實(shí)例
這篇文章介紹了java類中使用Jfreechart的簡(jiǎn)單實(shí)例,有需要的朋友可以參考一下2013-08-08idea pom導(dǎo)入net.sf.json的jar包失敗的解決方案
JSON(JavaScript Object Notation,JS對(duì)象簡(jiǎn)譜)是一種輕量級(jí)的數(shù)據(jù)交換格式,這篇文章主要介紹了idea pom導(dǎo)入net.sf.json的jar包失敗的解決方案,感興趣的朋友一起看看吧2023-11-11