我有一个静态的util类,它对一些敏感数据进行一些字符串操作。在使用这个类之前,我需要用我喜欢存储在.properties
文件中的值来初始化某些静态变量,比如用户名/密码。
我不太熟悉在Java语言中如何加载.properties
文件,尤其是在*Spring DI *容器之外。有没有人能给我一些帮助/建议?
谢谢!
另外:.properties
文件的精确位置未知,但它将在类路径上。有点像classpath:/my/folder/name/myproperties.propeties
发布于 2009-06-25 16:29:17
使用以下任一选项:
CurrentClassName.class.getResourceAsStream
new FileInputStream(File)
来获取输入流,这取决于类是在类路径中还是在类路径之外。然后使用
Properties.load
加载属性。
发布于 2009-06-25 16:31:15
已经有一段时间了,但是如果我没记错的话,你可以这样做:
Properties prop = new Properties();
prop.load(new FileInputStream(filename));
//For each property you need.
blah = prop.getProperty(propertyname);
发布于 2009-06-25 16:32:39
嗯,对于静态属性,将它们初始化为Singleton是有意义的,它将在类中加载一次。下面是一个例子:
class Example
{
public final static String PROPSFILE = "test.properties";
private static Properties props;
protected static Properties getProperties()
{
if(props == null)
{
props = new Properties();
props.load(new FileInputStream(new File(PROPSFILE));
}
return props;
}
public static User getUser()
{
String username = getProperties().getProperty("username");
return new User(username);
}
}
如果您使用相对路径名,您应该确保您的类路径设置正确。
https://stackoverflow.com/questions/1044855
复制相似问题