属性和配置(部分)

本节包括有关设置和读取属性和配置设置及其与Spring Boot应用程序交互的主题。

在构建时自动展开属性

您可以使用现有的构建配置自动扩展它们,而不是硬编码在项目的构建配置中也指定的某些属性。这在Maven和Gradle都是可行的。

使用Maven自动扩展属性

您可以使用资源过滤从Maven项目自动扩展属性。如果您使用spring-boot-starter-parent,则可以使用@..@占位符引用Maven“项目属性” ,如以下示例所示:

1
2
app.encoding=@project.build.sourceEncoding@
app.java.version=@java.version@

只有生产配置以这种方式过滤(换句话说,不应用过滤src/test/resources)。

如果启用该addResources标志,则spring-boot:run目标可以src/main/resources直接添加 到类路径(用于热重新加载)。这样做可以绕过资源过滤和此功能。相反,您可以使用exec:java 目标或自定义插件的配置。有关详细信息,请参阅 插件使用情况页面

如果不使用起动机家长,你需要包括中引入下列元素<build/>的元素pom.xml

1
2
3
4
5
6
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>

您还需要在内部包含以下元素<plugins/>

1
2
3
4
5
6
7
8
9
10
11
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<configuration>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>

useDefaultDelimiters如果${placeholder}在配置中使用标准的Spring占位符(例如),则该属性很重要。如果该属性未设置为false,则可以通过构建扩展这些属性。