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í)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaWeb Servlet中url-pattern的使用2. jsp中sitemesh修改tagRule技術(shù)分享3. asp(vbscript)中自定義函數(shù)的默認(rèn)參數(shù)實(shí)現(xiàn)代碼4. React優(yōu)雅的封裝SvgIcon組件示例5. 輕松學(xué)習(xí)XML教程6. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究7. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)8. JSP servlet實(shí)現(xiàn)文件上傳下載和刪除9. ASP基礎(chǔ)知識(shí)VBScript基本元素講解10. 詳解瀏覽器的緩存機(jī)制
