【问题标题】:Spring : How to give properties file to Java.exeSpring:如何将属性文件提供给 Java.exe
【发布时间】:2017-11-28 23:19:55
【问题描述】:

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

谢谢 陈巴嘎

【问题讨论】:

    标签: spring properties properties-file


    【解决方案1】:

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

    @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

    【讨论】:

    • 感谢 Essec。这就是我现在正在做的事情。但是当我执行 JAR 时,我需要覆盖其中的一些属性值。我想将所有这些属性放在一个文件中,并将该文件作为 JVM 的输入,而不是在执行 JAR 时将每个属性都作为 -D。
    • @ChenbagaMurugan 我不明白你的问题,现在看答案。在 spring 链接上也有很多这样的例子。
    猜你喜欢
    • 2017-12-27
    • 1970-01-01
    • 2011-02-08
    • 2019-11-02
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 2012-01-17
    • 2016-12-09
    相关资源
    最近更新 更多