Java扩展属性配置

时间:2018-03-27 07:36:02

标签: java

我正在寻找属性配置的实现,其中属性按以下顺序(或类似)考虑:

  • 命令行参数。
  • Java系统属性(System.getProperties())。
  • OS环境变量。
  • 打包jar外的应用程序属性。

这意味着会有hashmap个文件。这可以被OS环境变量等覆盖。命令行参数会覆盖以前的所有属性。

2 个答案:

答案 0 :(得分:0)

如果您在令人失望的优先级中提供不同的PropertySource,那么这实际上就是Springs PropertiesPlaceholderConfigurer的工作方式。

不幸的是,它只适用于Spring Framework。

答案 1 :(得分:0)

你可以做这样的事情

Properties properties = new Properties();
        InputStream input = new FileInputStream(new File("settings.properties"));
        properties.load(input);
        String ipAddress = properties.getProperty("ip");

退出示例

时保存
 File f = new File("settings.properties");
    OutputStream out = new FileOutputStream(f);
    properties.setProperty("ip", ipAddress);
    properties.store(out, "properties");