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");
用 .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");