问题
在某些情况中,Spring Boot需要加载动态配置文件,这里占位符
${}就很关键,但是却发现占位符不生效,对应值没有被替换。
application.yml源码
spring:
application:
name: ${artifactId}
编译后代码
spring:
application:
name: ${artifactId}
可能的原因
Spring Boot已经将maven-resources-plugins默认的
${}方式改为了@@方式,如@artifactId@
解决方案一
使用Spring Boot推荐的@@占位符
例如:
spring:
application:
name: @artifactId@
解决方案二
继续使用${}方式
你需要在pom.xml中修改或增加以下插件并修改配置
配置如下
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<encoding>utf-8</encoding>
<!-- 使Spring Boot支持${}占位符 -->
<useDefaultDelimiters>true</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
</build>









网友评论