Spring maven filtering使用方法詳解
SpringEL表達(dá)式取值一般是${var}方式取值, 見(jiàn)于application.properties和@Value("${var}")中
maven的pom.xml文件中也有類似的取值表達(dá)式, 也是通過(guò)${var}的方式取值
然而: 它們并不是一個(gè)東西!
EL表達(dá)式適用于配置文件及代碼中的注解
maven的占位符取值表達(dá)式默認(rèn)僅僅適用于pom.xml文件中
我們的需求大多是想打通二者的交流,如何做?
此時(shí)filtering就派上用場(chǎng)了
maven的占位符解析表達(dá)式的使用場(chǎng)合默認(rèn)只在pom文件范圍內(nèi)活動(dòng)
如果想擴(kuò)大它的活動(dòng)范圍,就必須指定需要擴(kuò)大到哪些文件,然后指定filtering=true.然后maven的占位符解析表達(dá)式就可以用于它里面的表達(dá)式解析了.
<build> <resources> <resource> <directory>${project.basedir}/src/main/resources</directory> <filtering>true</filtering> </resource> </resources> </build>
=================================================================================================================
題外話:
如果你的項(xiàng)目繼承了spring-boot-starter-parent,
如果想在application.properties中使用maven的占位符以獲取maven的參數(shù),此時(shí)就不能用${},
因?yàn)榭赡軙?huì)與EL表達(dá)式?jīng)_突,
怎么辦?
此時(shí)parent依賴將maven占位符表達(dá)式默認(rèn)改為@var@的形式. 所以只能用@var@替代${var}
總結(jié):
1. Spring EL表達(dá)式和MAVEN的占位符表達(dá)式長(zhǎng)得一樣,但兩者默認(rèn)進(jìn)水不犯河水,不能再Spring的范圍內(nèi)取maven的參數(shù)
2. filtering的作用就是打通兩者的連接, 讓井水犯河水, 具體來(lái)說(shuō)是讓Spring的范圍內(nèi)能取到maven的參數(shù)
3. filtering的使用要配合resource一起使用: 前者開(kāi)啟打通連接,后者指定打通的范圍.
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatis批量插入(insert)數(shù)據(jù)操作
本文給大家分享MyBatis批量插入(insert)數(shù)據(jù)操作知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧2016-06-06Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java Redis分布式鎖的正確實(shí)現(xiàn)方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09Java實(shí)現(xiàn)大數(shù)運(yùn)算的實(shí)例代碼
這篇文章主要介紹了Java實(shí)現(xiàn)大數(shù)運(yùn)算的實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-06-06簡(jiǎn)單了解Mybatis如何實(shí)現(xiàn)SQL防注入
這篇文章主要介紹了簡(jiǎn)單了解Mybatis如何實(shí)現(xiàn)SQL防注入,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Java使用Scala實(shí)現(xiàn)尾遞歸優(yōu)化來(lái)解決爆棧問(wèn)題
Scala?作為一種多范式的編程語(yǔ)言,結(jié)合了面向?qū)ο蠛秃瘮?shù)式編程的特性,在?Scala?中,尾遞歸?是通過(guò)編譯器優(yōu)化來(lái)防止棧溢出問(wèn)題的,尾遞歸優(yōu)化是一種特殊的優(yōu)化方式,可以讓遞歸調(diào)用不使用新的棧幀,所以本文介紹了在Java項(xiàng)目中如何使用Scala實(shí)現(xiàn)尾遞歸優(yōu)化來(lái)解決爆棧問(wèn)題2024-10-10Java中使用回調(diào)函數(shù)的方法實(shí)例
本文主要介紹了Java中使用回調(diào)函數(shù)的方法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05Java 中的CharArrayReader 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
CharArrayReader 是字符數(shù)組輸入流。它和ByteArrayInputStream類似,只不過(guò)ByteArrayInputStream是字節(jié)數(shù)組輸入流,而CharArray是字符數(shù)組輸入流。CharArrayReader 是用于讀取字符數(shù)組,它繼承于Reader2017-05-05完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問(wèn)題
這篇文章主要介紹了完美解決idea光標(biāo)變成了insert光標(biāo)狀態(tài)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02