我使用Spring开发Java应用程序。我已将某些属性存储在属性文件中,该文件打包为JAR。使用@Value注释在代码中读取属性。现在,当我部署JAR时,我想为其中一些属性提供新值。我知道我们可以将新属性值赋予“-Dproperty-name = property-value”。但有没有办法将一个新的属性文件本身作为输入,它有许多属性可以一起覆盖?
由于 Chenbaga
答案 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存在,它将首先获取默认属性,然后使用文件中的属性覆盖。如果系统参数不存在,则不会归档文件并使用默认值。