在Java中,存储配置的典型方法是使用属性文件。所以我有几个这样的文件,每个环境类型都有一个(dev、test、prod、.)。
这种配置需要在代码库的不同部分,即不同的类中进行,但是为了避免重复将正确的文件打开到Properties对象中的代码,然后请求一个特定的属性,我决定使用一个ConfigurationLoader类来加载文件,并将属性对象保存在一个静态变量中。
public class ConfigurationLoader {
static Properties configuration = new Properties().load(new FileReader("/path/to/my/file"));
public static String getProperty(String propertyName) {
return configuration.getProperty(propertyName);
}
}(这段代码被一个不知名的异常打破,但其思想是将配置加载到一个静态块中)
通过这种方式,只要加载了该类,所有配置都会被加载,并且只需使用ConfigurationLoader.getProperty(...)即可对任何类都可用。当然,最好不要在多个地方加载相同的属性,并且可能创建不同的“配置域”类来一劳永逸地进行解析。
然后我有两个问题:
发布于 2015-08-13 18:05:34
我假设您是在应用程序容器之外,在核心java应用程序中尝试此操作。否则,属性文件不是正确的方法:部署描述符、配置存储等是正确的答案。
对于配置,最常见的思想是共用配置,它允许您将配置存储为XML/text。它有很多特性:允许像XPath一样访问配置,允许以列表形式访问多值配置元素,等等。
最不受欢迎的是你指定的那个。即使这样,它似乎也被打破了,因为它是从一个特定的相对/绝对路径。理想情况下,文件应该在类路径上,并且应该从SystemClassLoader作为InputStream读入属性。
希望这能有所帮助。
https://softwareengineering.stackexchange.com/questions/293601
复制相似问题