我正在尝试解决我的配置文件问题。
我有具有此结构的 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 配置文件放入 resources 目录? 我不确定它们是否可以被视为资源文件。大多数 Spring 项目的配置都在 WEB-INF/目录中。但是单元测试有一个问题,因为当我需要加载 servlet 配置时,maven 需要/test/resources 目录中的配置文件。我知道,我可以将上下文 xml 文件复制到测试的类中,一切都会好起来的,但这对我来说看起来不太好。
我在互联网上阅读了很多文章,但我仍然不确定什么是正确的方法。
所以我有树选项:
1. 保持当前结构
2. 将所有 spring 配置移动到/main/(java|test)/resources 在这里我可以看到一件坏事。所有配置文件都将位于类目录中,我不确定这是否正确。
3. 仅将 servlet 配置移动到/main/(java|test)/resources 并将其他 spring 配置文件保留在/WEB-INF/目录中。
那么,你有什么建议呢? 将 Spring 与 Maven 和 JUnit 结合使用时,配置文件放置的最佳实践是什么?
更新:修复了选项 2 和 3 中的目录命名。
更新:我发现阅读有关 Spring 最佳实践的 [1] 非常有趣。它看起来非常有希望并证实了拉尔夫的解决方案。我仍然对 WEB-INF/classes 中 META-INF 目录的存在不满意,但是,好吧......没有什么是完美的。
最佳答案
常见模式(例如 Spring Roo 应用程序使用的模式)是将配置文件放在 src\main\resources\META-INF\spring\
然后,您可以在测试和应用程序中通过相同的表达式 classpath:META-INF\spring\application-context.xml
加载它们。
关于spring - 使用maven时spring配置文件放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859755/