请教各位高手一个spring下的junit测试问题

由于我注入的service里面加载了一些properties等文件,导致出现路径问题使得applicationContext.xml加载不成功。
类似:
假如我要初始化一个abcService,这个service加载了/web-inf/abc.properties
由于正常运行时,初始化abcService需要读取
d:\eclipse.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\testPrj\WEB-INF\abc.properties

但做junit测试的时候,我看当前的运行目录变成了
d:\eclipse\testPrj\build了
这样无论我想怎么弄都找不到那个abc.properties了,于是初始化abcService就出错,applicationContext.xml加载不成功

我想这应该是个常见的问题,可惜我找不到答案,也不知道怎么搜索
各位有没有什么解决办法?多谢了!

这个问题是由于你的项目结构决定的,你把abc.properties 放在WEB-INF目录下,无路是在开发环境还是在产品使用环境,这个abc.properties的加载都是问题。
解决的办法:
如果可以将abc.properties文件移动到你的源文件目录下,如果你使用maven管理项目,那么缺省是src/main/resources。这样你的applicationContext.xml文件中加载属性可以用
classpath:path/abc.properties。
例如
applicationContext.xml
[code="xml"]...



...
[/code]
Service.java
[code="java"]public class Service{
private String path;
//省略get和set方法
//...
public void init(){
//下面的方法可以加载abc.properties文件
Properties prop=new Properties()
prop.load(new FileReader(new File(getClass().getClassLoader().getResource(getPath()).toURI())));
}
}[/code]

abcService怎么加载abc.properties文件的?
用绝对路径?classpath?classloader?

可不可以尝试使用绝对路径或者使用classpath

new File(“WEB-INF/templates/”)
相信你这个文件路径应该是可配置的,
改成绝对路径试试

建议将这个配置文件放在classpath下,这样便于测试,同时在web环境下程序能正常运行