spring存放xml配置文件的位置

时间:2013-02-18 23:32:18

标签: spring java-ee configuration-files directory-structure

我正在开发一个spring项目,我刚刚遇到了在junit中加载XML配置文件的严重问题(但是可以从Web控制器访问它们) - 无法加载XML文件。

我列出了我的类路径(在junit测试中),发现其中包括2个目录:

/var/www/Java/lyricsBase/build/web/WEB-INF/classes/
/var/www/Java/lyricsBase/build/test/classes/

我想在测试中包含一个文件:

  • /WEB-INF/lyricsBaseApp-servlet.xml

并导入以下3个文件:

  • /WEB-INF/hibernate.xml
  • /WEB-INF/dataSource.xml
  • /WEB-INF/beans.xml

我可以清楚地看到在tomcat上部署我的项目会将confg文件复制到/var/www/Java/lyricsBase/build/web/WEB-INF/ABC.xml,但此目录不在类路径中,而是包含/var/www/Java/lyricsBase/build/web/WEB-INF/classes。我读到WEB-INF不应该在类路径中(它只是一个Java EE原理)。好的 - 那么我应该在哪里放置配置文件以便从Web控制器和junit测试中轻松访问它们?有什么好的做法吗?

2 个答案:

答案 0 :(得分:2)

将配置文件放在war包上的WEB-INF / classes下,它们将被加载到类路径中。考虑将代码部署为爆炸式战争,因此可以轻松更改配置文件。

还可以考虑使用maven war项目进行包装。如果这样做,您可以将配置文件放在源代码下的src / main / resources下,然后将它们打包到WEB-INF / classes中。

答案 1 :(得分:1)

我遇到了同样的问题,从那时起开始将它们放在资源下的META-INF中。这是不在Tomcat中运行的spring模板项目放置它们并且似乎解决了我的问题。