Spring maven filtering使用方法詳解
SpringEL表達(dá)式取值一般是${var}方式取值, 見于application.properties和@Value('${var}')中
maven的pom.xml文件中也有類似的取值表達(dá)式, 也是通過${var}的方式取值
然而: 它們并不是一個東西!
EL表達(dá)式適用于配置文件及代碼中的注解
maven的占位符取值表達(dá)式默認(rèn)僅僅適用于pom.xml文件中
我們的需求大多是想打通二者的交流,如何做?
此時filtering就派上用場了
maven的占位符解析表達(dá)式的使用場合默認(rèn)只在pom文件范圍內(nèi)活動
如果想擴(kuò)大它的活動范圍,就必須指定需要擴(kuò)大到哪些文件,然后指定filtering=true.然后maven的占位符解析表達(dá)式就可以用于它里面的表達(dá)式解析了.
<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表達(dá)式?jīng)_突,
怎么辦?
此時parent依賴將maven占位符表達(dá)式默認(rèn)改為@var@的形式. 所以只能用@var@替代${var}
總結(jié):
1. Spring EL表達(dá)式和MAVEN的占位符表達(dá)式長得一樣,但兩者默認(rèn)進(jìn)水不犯河水,不能再Spring的范圍內(nèi)取maven的參數(shù)
2. filtering的作用就是打通兩者的連接, 讓井水犯河水, 具體來說是讓Spring的范圍內(nèi)能取到maven的參數(shù)
3. filtering的使用要配合resource一起使用: 前者開啟打通連接,后者指定打通的范圍.
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. javascript xml xsl取值及數(shù)據(jù)修改第1/2頁2. JavaWeb Servlet中url-pattern的使用3. 使用EF Code First搭建簡易ASP.NET MVC網(wǎng)站并允許數(shù)據(jù)庫遷移4. HTML5 Canvas繪制圖形從入門到精通5. jsp+servlet簡單實現(xiàn)上傳文件功能(保存目錄改進(jìn))6. 淺談SpringMVC jsp前臺獲取參數(shù)的方式 EL表達(dá)式7. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明8. XML入門的常見問題(一)9. asp批量添加修改刪除操作示例代碼10. ASP中if語句、select 、while循環(huán)的使用方法
