使用maven时放置spring配置文件的位置

Pet*_*ter 4 junit spring unit-testing maven

我正在尝试解决配置文件问题.

我有这个结构的Spring MVC应用程序(我目前的结构)

src/main/java/ ....................... (java classes)
src/main/resources/ .................. (some .properties files )
src/main/webapp/ ..................... (web content, web.xml )
src/main/webapp/spring/ .............. (other spring config files, app-confix.xml, etc.)
src/main/webapp/myApp-servlet.xml .... (servlet config)


src/test/java ........................ (java test classes)
src/test/resources ................... (some test .properties files) 

(这是非常标准的maven项目目录结构)

所以,我的问题是:我应该将spring配置文件放到资源目录中吗? 我不确定它们是否可以被视为资源文件.大多数spring项目都在WEB-INF /目录中进行了配置.但单元测试存在一个问题,因为当我需要加载servlet配置时,maven期待/ test/resources目录中的配置文件.我知道,我可以将上下文xml文件复制到测试类中,一切都会好的,但对我来说这看起来不太好.

我在互联网上阅读了很多文章,但我仍然不确定什么是正确的方法.

所以我有树选项:

1.保持现有结构

2.将所有spring配置移动到/ main /(java | test)/ resources这里我可以看到一件坏事.所有配置文件都在classes目录中,我不确定这是否正确.

3.仅将servlet配置移动到/ main /(java | test)/ resources,并将其他spring配置文件保存在/ WEB-INF /目录中.

那么,你推荐什么?将Spring与Maven和JUnit一起使用时,配置文件放置的最佳实践是什么?

更新:修复了选项2和3中的目录命名.

更新:我发现有关Spring最佳实践的非常有趣的阅读[1].它看起来非常有前景,并证实了拉尔夫的解决方案.我对META-INF目录的存在感到不满意,WEB-INF/classes但是......没有什么是完美的.

[1] http://gordondickens.com/wordpress/2012/07/03/enterprise-spring-best-practices-part-1-project-config/

Ral*_*lph 11

常见模式(例如Spring Roo应用程序使用)是将配置文件放在下面 src\main\resources\META-INF\spring\

然后,您可以通过classpath:META-INF\spring\application-context.xml测试和应用程序中的相同表达式加载它们.