5

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

我有具有这种结构的 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但是,嗯……没有什么是完美的。

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

4

1 回答 1

11

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

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

于 2012-12-13T13:09:01.860 回答