您好,登錄后才能下訂單哦!
正確使用Spring maven filtering的方法?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
SpringEL表達式取值一般是${var}方式取值, 見于application.properties和@Value("${var}")中
maven的pom.xml文件中也有類似的取值表達式, 也是通過${var}的方式取值
然而: 它們并不是一個東西!
EL表達式適用于配置文件及代碼中的注解
maven的占位符取值表達式默認僅僅適用于pom.xml文件中
我們的需求大多是想打通二者的交流,如何做?
此時filtering就派上用場了
maven的占位符解析表達式的使用場合默認只在pom文件范圍內活動
如果想擴大它的活動范圍,就必須指定需要擴大到哪些文件,然后指定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的參數,此時就不能用${},
因為可能會與EL表達式沖突,
怎么辦?
此時parent依賴將maven占位符表達式默認改為@var@的形式. 所以只能用@var@替代${var}
總結:
1. Spring EL表達式和MAVEN的占位符表達式長得一樣,但兩者默認進水不犯河水,不能再Spring的范圍內取maven的參數
2. filtering的作用就是打通兩者的連接, 讓井水犯河水, 具體來說是讓Spring的范圍內能取到maven的參數
3. filtering的使用要配合resource一起使用: 前者開啟打通連接,后者指定打通的范圍.
關于正確使用Spring maven filtering的方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。