Java: 加载后访问 Properties 对象的方法

Java: Ways to access Properties object after load

.properties 文件加载 Properties() 对象后,访问它的正确方法是什么?

我过去使用的一种方法是将每个 Properties 对象存储在实用程序 class 的静态变量中并通过那里访问它。但是我一直在想,实际上创建一个带有一些实用函数的包装器 class 可能会更好?不确定这是否有帮助。我发现的大多数示例只关心如何加载属性文件,而不关心之后应该发生什么。

是否有普遍认可的方法,其优缺点是什么?

帮自己一个大忙,围绕您的属性文件访问创建一个 DAO。在我工作过的大多数系统中,我们总是希望我们有这种抽象,它允许属性文件在未来的某个时候成为数据库驱动的。

您可以将其作为静态变量缓存在 DAO 中,但这对客户端来说是隐藏的。

正如 Rob Conklin 所说,为了(将来)能够切换基于属性文件的存储,保持一定程度的抽象可能是件好事。

但是,您可以设置将属性与 System.getProperty() 合并,以便从程序中的任何位置轻松访问

FileInputStream propFile = new FileInputStream("myProperties.properties");
Properties p = new Properties(System.getProperties());
p.load(propFile);
// set the system properties
System.setProperties(p);

您设置的最新属性将覆盖其他属性(如果名称冲突)

您稍后可以访问 属性 只需使用 System.getProperty("propName");