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