【问题标题】:What is the correct way of using a config file?使用配置文件的正确方法是什么?
【发布时间】:2013-08-13 19:46:46
【问题描述】:

我想为我的应用程序使用 XML 配置文件,如下所示:

<defaults>
 <timeout>3000</timeout>
 <delay>200</delay>
..... etc

我想在多个类中使用这些属性。我目前这样做的方式是读取静态类中的 xml 文件并将它们存储在静态最终属性中,例如:

public static final int TIMEOUT;

然后在另一堂课上我读到:

int timeout = Properties.TIMEOUT;

其中 Properties 是我存储这些静态变量的类。 以前从未使用过配置文件,我确实意识到这不是处理它们的正确方法。所以我的问题是,在整个 Java 应用程序中使用 XML 配置文件的好方法是什么,和/或是否有设计模式可以使用? 感谢您的帮助!

【问题讨论】:

  • 您可能会发现这作为参考很有用,或者只是将其包含在您的项目中。 commons.apache.org/proper/commons-configuration
  • 您对单线程环境感兴趣还是我们在谈论服务器?
  • 不,没有服务器,只有一个线程。
  • 为什么你认为你的方法是错误的?通过在应用程序启动时读取配置文件并在类和线程之间共享属性,我没有看到任何问题。无论如何,数据是不可变的。
  • 我宁愿不必使用外部库,因为这可能是我们公司的问题,即使它是开源的。我对读取配置文件一次然后在不同的类中使用这些属性的方式更感兴趣。还是根据需要从不同类中读取属性更常见?

标签: java xml properties config


【解决方案1】:

就像你写的那样,通常properties-file 用于配置。它的格式为:

key1=value1
key2=value2
...

使用起来真的不复杂 - 您几乎可以在不到 5 分钟的时间内拿起它。这是一个很好的 example 用于使用属性文件。

更新

如果您必须使用 XML 文件 - 我会使用任何 XML 解析器 (JAXB/XStream...) 并创建一个包含键/值对的 hashMap - 就像使用属性文件一样.

【讨论】:

  • 是的,我之前查看过属性文件,但我们确实需要使用 xml 文件。正如我上面所说,我更感兴趣的是读取配置文件一次,然后在不同的类中使用这些属性。
  • @Dave 请参阅更新部分
  • @Dave - java.util.Properties 也有一个loadFromXML(InputStream) 方法。见the javadoc
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 2020-09-13
  • 1970-01-01
  • 2012-03-18
  • 1970-01-01
  • 1970-01-01
  • 2014-04-12
相关资源
最近更新 更多