我在此文件夹中有一个属性文件:
/src/webapp/WEB-INF/classes/my.properties
我正在使用:
加载它ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
InputStream is = classLoader.getResourceAsStream("/my.properties");
Properties props = new Properties();
try {
props.load(is);
} catch (IOException e) {
e.printStackTrace();
}
String test = props.getProperty("test");
现在这在我的Spring mvc应用程序中运行良好。
但是当我为此创建测试时,它失败了,我假设因为应用程序加载它的方式不是使用web-inf / classes,因为它只是一个类而不是一个Spring Web应用程序。
那么我在哪里放置我的属性文件,以便在我的junit测试运行时,拾取属性文件?
另外,对于我的网络应用,除了/ web-inf / classes之外,默认类路径中还有哪些其他文件夹?
答案 0 :(得分:6)
如果您将my.properties
放在maven的/src/test/resources
下,它将作为测试的常规资源。
答案 1 :(得分:1)
我会删除classLoader.getResourceAsStream("/my.properties");
中的路径(/),因为类加载器在应用程序的根目录中启动。将文件保留在原来的相同位置。然后改为
String filename = "my.properties";
InputStream is = classLoader.getResourceAsStream(filename); //for web-app
if(is == null)
is = new FileInputStream (filename); //for testing
答案 2 :(得分:0)
通常我将属性文件直接放在src文件夹中。