maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案:
<!--在build中配置resources,来防止我们资源导出失败的问题-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
这里的 里的true与false有什么作用,你们了解吗?
原来SpringEL表达式取值一般是$ {var}方式取值, 见于*.properties和@Value(“${var}”)中
maven的pom.xml文件中也有类似的取值表达式, 也是通过${var}的方式取值
然而: 它们并不是一个东西!
EL表达式适用于配置文件及代码中的注解
maven的占位符取值表达式默认仅仅适用于pom.xml文件中
我们的需求大多是想打通二者的交流,如何做?
此时filtering就派上用场了
maven的占位符解析表达式的使用场合默认只在pom文件范围内活动
如果想扩大它的活动范围,指定需要扩大到哪些文件,令filtering为true.然后maven的占位符解析表达式就可以用于它里面的表达式解析了.
所以说,这里的true/false与$取值有关