Spring:如何将属性文件提供给Java.exe

时间:2017-06-26 06:43:43

标签: spring properties properties-file

我使用Spring开发Java应用程序。我已将某些属性存储在属性文件中,该文件打包为JAR。使用@Value注释在代码中读取属性。现在,当我部署JAR时,我想为其中一些属性提供新值。我知道我们可以将新属性值赋予“-Dproperty-name = property-value”。但有没有办法将一个新的属性文件本身作为输入,它有许多属性可以一起覆盖?

由于 Chenbaga

1 个答案:

答案 0 :(得分:0)

您可以拥有许多不同的属性文件,然后使用特定的系统参数加载。

@Configuration
@PropertySource(value = {"classpath:/app.properties", "file:/${configLocation}/app.properties"}, ignoreResourceNotFound = true)

public class AppConfig {

将您的默认app.properties添加到/src/resources/app.properties

然后,当您启动JVM时,可以使用

覆盖
-DconfigLocation=/home/config

如果configLocation存在,它将首先获取默认属性,然后使用文件中的属性覆盖。如果系统参数不存在,则不会归档文件并使用默认值。

有关更多示例,请参阅http://docs.spring.io/spring/docs/4.3.9.RELEASE/javadoc-api/org/springframework/context/annotation/PropertySource.html