我正在尝试从backupData.properties
读取一些道具。它位于WEB-INF/classes/
。这就是我的方式:
public class Configures {
private static final String INPUT_FILE = "WEB-INF//classes//backupData.properties";
public static String getMail() {
Properties prop = new Properties();
try {
//load a properties file
prop.load(new FileInputStream(INPUT_FILE));
//get the property value
return prop.getProperty("mail");
} catch (IOException ex) {
ex.printStackTrace();
}
return null;
}
}
INPUT_FILE
应包含哪些内容?我试图将它放在src
中,就像src//backupData.properties
一样,但它会抛出FileNotFoundException
。我用谷歌搜索该文件应该位于CLASSPATH
(我所理解的WEB-INF/classes
中)。怎么了?
PS。我正在使用Spring。
答案 0 :(得分:2)
这与Spring无关。如果要部署Web应用程序,WEB-INF/classes
中的所有内容都将从类路径的根目录开始显示。
您可以使用
获取该资源的InputStream
InputStream in = Configures.class.getResourceAsStream("/backupData.properties");
prop.load(in);
由于Web应用程序并非始终从其.war
文件中提取,因此实际属性文件可能仅作为zip条目存在。因此,您不能(也不应该)使用FileInputStream
检索它。
答案 1 :(得分:1)
由于您使用的是SPRING,我建议您“CAN”将其用作Bean定义的一部分:
<property name="template" value="classpath:/backupData.properties">
或
Resource template = ctx.getResource("classpath:/backupData.properties");
或@Sotirios Delimanolis