我一直在读:
http://static.springsource.org/spring/docs/2.5.x/reference/resources.html
但是我很难理解如何指定类路径资源路径。例如,我在eclipse spring项目中有如下项目结构:
project1
src
main
resources
maincontext.xml
test
resources
testcontext.xml
java
uk
co
project1
Unittest.java
然后在我的测试文件中我有:
@ContextConfiguration(locations={"classpath:testcontext.xml", "classpath:<path of maincontext>"})
公共类BlacklistTest扩展AbstractTransactionalJUnit4SpringContextTests {
当我右键单击我的测试文件并选择debug作为JUnit测试时,可以找到testcontext.xml。这让我觉得我的类路径的根是“project1 / src / test / resources”。我不明白这是在日食中确定的地方..?此外,一旦我完成了这个,如果它位于我的root之上,如何包含maincontext.xml?最后,如果我包含另一个项目'project 2'并想从中添加一个spring上下文文件,我该如何在我的unittest.java文件中引用它。
答案 0 :(得分:1)
类路径的“根”字面意思是""
(一个空字符串,在文件系统上就像"/"
一样)。
看起来你正在使用Maven。这意味着在构建过程中会合并诸如/src/main/java
,/src/main/resources
之类的东西 - 换句话说,Eclipse将每个用作源目录。 test
层次结构紧随其后。
你不想要包含一些“在你的根”之上的东西 - IMO坚持使用类路径资源。如果不这样做,则必须明确命名,不要使用"classpath:"
前缀,因为它不在类路径中,并提供完全限定的路径(或者完全符合您的环境要求,例如,web-app文件名可能基于Web上下文根,如"/WEB-INF/foo-context.xml"
)。