【发布时间】:2009-08-04 22:34:26
【问题描述】:
我有几个类需要加载一些属性文件,我想知道实现这一点的最佳实践是什么。我想到了两种基本方法:
-
硬编码每个类中的属性文件名,然后使用
Properties类从FileInputStream加载,如果有人决定更改属性文件的名称,这可能会出现问题,因为它是硬编码在代码。public class A { public A() { Properties p = new Properties().load( new FileInputStream("properties/Aconfig.properties")); String value = p.getProperty("key", ""); } } -
创建一个方法,给定一个类名,加载一个与该类同名的属性文件。虽然这种方法不需要硬编码属性文件名,但它确实要求我们在命名文件时遵循一些约定,这可能会导致混淆。
public class A { public A() { Properties p = PropertiesHelper.loadFromClassName(A.class.getName()); // here, we **assume** that there is a A.properties file in the classpath. } }
但是,可能还有许多其他更优雅的方法,这就是我提出这些问题的原因:i) 在 Java 中加载属性文件的最佳实践是什么? ii)您是否使用任何负责这项工作的助手类? iii) 您通常在哪里(在代码中)加载属性文件?
另外,一个类可以“自动加载”它的属性吗?或者我应该将我需要的参数传递给构造函数?传递参数的问题是,对于某些类来说太多了(大约 20 个,代表统计模型中的参数)。
【问题讨论】:
标签: java properties