SpringEL表达式取值一般是${var}方式取值, 见于application.properties和@Value("${var}")中。EL表达式适用于配置文件及代码中的注解。
maven的pom.xml文件中也有类似的取值表达式, 也是通过${var}的方式取值。maven的占位符取值表达式默认仅仅适用于pom.xml文件中。
我们的需求大多是想打通二者的交流,如何做?
如果想扩大它的活动范围,就必须指定需要扩大到哪些文件,然后指定filtering=true.然后maven的占位符解析表达式就可以用于它里面的表达式解析了。
<build>
<resources>
<resource>
<directory>${project.basedir}/src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
总结:
1. Spring EL表达式和MAVEN的占位符表达式长得一样,但两者默认进水不犯河水,不能再Spring的范围内取maven的参数
2. filtering的作用就是打通两者的连接, 让井水犯河水, 具体来说是让Spring的范围内能取到maven的参数
3. filtering的使用要配合resource一起使用: 前者开启打通连接,后者指定打通的范围.