Spring maven filtering使用方法详解
SpringEL表达式取值一般是${var}方式取值,见于application.properties和@Value("${var}")中
maven的pom.xml文件中也有类似的取值表达式,也是通过${var}的方式取值
然而:它们并不是一个东西!
EL表达式适用于配置文件及代码中的注解
maven的占位符取值表达式默认仅仅适用于pom.xml文件中
我们的需求大多是想打通二者的交流,如何做?
此时filtering就派上用场了
maven的占位符解析表达式的使用场合默认只在pom文件范围内活动
如果想扩大它的活动范围,就必须指定需要扩大到哪些文件,然后指定filtering=true.然后maven的占位符解析表达式就可以用于它里面的表达式解析了.
${project.basedir}/src/main/resources true
=================================================================================================================
题外话:
如果你的项目继承了spring-boot-starter-parent,
如果想在application.properties中使用maven的占位符以获取maven的参数,此时就不能用${},
因为可能会与EL表达式冲突,
怎么办?
此时parent依赖将maven占位符表达式默认改为@var@的形式.所以只能用@var@替代${var}
总结:
1.SpringEL表达式和MAVEN的占位符表达式长得一样,但两者默认进水不犯河水,不能再Spring的范围内取maven的参数
2.filtering的作用就是打通两者的连接,让井水犯河水,具体来说是让Spring的范围内能取到maven的参数
3.filtering的使用要配合resource一起使用:前者开启打通连接,后者指定打通的范围.
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。