我选择使用属性文件来自定义某些设置。
我使用以下代码使属性对象在类中可用
Properties defaultProps = new Properties();
try {
FileInputStream in = new FileInputStream("custom.properties");
defaultProps.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
我必须将其添加到每个课程中吗?可能不是,因为每个类都会打开该文件的流。
但我不确定如何正确处理这个问题。
我应该上课吗MyProperties
并在任何需要属性的类中实例化它?
提前致谢!
一旦你初始化了defaultProps
,您可以将其内容提供给应用程序中的其他对象,例如通过公共静态访问器方法,例如:
public class Config {
private static Properties defaultProps = new Properties();
static {
try {
FileInputStream in = new FileInputStream("custom.properties");
defaultProps.load(in);
in.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static String getProperty(String key) {
return defaultProps.getProperty(key);
}
}
这是最简单的方法,但是它创建了额外的依赖关系,这使得单元测试变得更加困难(除非您在Config
设置模拟属性对象以进行单元测试)。
另一种方法是注入defaultProps
(或其中的单独配置值)到需要它的每个对象中。但是,如果您的调用层次结构很深,这可能意味着您需要向许多方法添加额外的参数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)