springboot工程,也使用了spring配置文件,里面使用了占位符,${},但占位符一直未正常替换值。事后总结原因如下:
1)
<resource> <directory>src/main/resources</directory> <filtering>true</filtering> -->这个地方需设置为true
意思是将配置文件里的占位符在编译的时候替换。
2)由于${}
方式会被maven处理,如果你的pom继承了spring-boot-starter-parent
,Spring
Boot已经将maven-resources-plugins默认的${}
方式改为了@@
方式,如@name@。
如果还想继续使用${}占位符方式,需要在pom文件中加上下面配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
小伙伴们可以自查,看是否是上面的原因。
但如果已读取了properties配置文件,正常springboot在启动时会替换占位符,但我的工程却没有。原因还在分析中,上述是在编译的时候将占位符替换为实际值。