我正在尝试解决我的配置文件问题。
我有具有这种结构的 Spring MVC 应用程序(我当前的结构)
src/main/java/ .................. (java 类) src/main/resources/ ..................(一些 .properties 文件) src/main/webapp/ .....................(网页内容,web.xml) src/main/webapp/spring/ .................(其他spring配置文件,app-confix.xml等) src/main/webapp/myApp-servlet.xml .... (servlet 配置) src/test/java ......................... (java 测试类) src/test/resources ...................(一些测试 .properties 文件)
(这是非常标准的 Maven 项目目录结构)
所以,我的问题是:我是否应该将 spring 配置文件放到资源目录中? 我不确定它们是否可以被视为资源文件。大多数spring项目在WEB-INF/目录下都有配置。但是单元测试存在一个问题,因为当我需要加载 servlet 配置时,maven 会期望 /test/resources 目录中的配置文件。我知道,我可以将上下文 xml 文件复制到测试类,一切都会好起来的,但这对我来说看起来不太好。
我在互联网上阅读了很多文章,但我仍然不确定什么是正确的方法。
所以我有树选项:
1.保持现有结构
2.将所有spring配置移动到/main/(java|test)/resources 这里我可以看到一件坏事。所有配置文件都将在 classes 目录中,我不确定这是否正确。
3.只将servlet config 移动到/main/(java|test)/resources 并将其他spring 配置文件保留在/WEB-INF/ 目录中。
那么,你有什么推荐的?将 Spring 与 Maven 和 JUnit 一起使用时,配置文件放置的最佳实践是什么?
更新:选项 2. 和 3 中的固定目录命名。
更新:我发现关于 Spring 最佳实践的阅读 [1] 非常有趣。它看起来很有希望并证实了 Ralph 的解决方案。我仍然对 META-INF 目录的存在不满意,WEB-INF/classes
但是,嗯……没有什么是完美的。