开源框架-SpringBoot系列

[踩坑] Spring Boot占位符问题

2019-12-18  本文已影响0人  霸哥终结者

问题

在某些情况中,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>
上一篇 下一篇

猜你喜欢

热点阅读