美文网首页开源框架-SpringBoot系列
[踩坑] Spring Boot占位符问题

[踩坑] Spring Boot占位符问题

作者: 霸哥终结者 | 来源:发表于2019-12-18 13:44 被阅读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>

相关文章

网友评论

    本文标题:[踩坑] Spring Boot占位符问题

    本文链接:https://www.haomeiwen.com/subject/bqfunctx.html