当前位置: 首页 > 知识库问答 >
问题:

使用maven时将Spring配置文件放在哪里

邓正真
2023-03-14

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

我有这个结构的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项目目录结构)

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

我在网上看了很多文章,但我仍然不确定什么是正确的方法。

所以我有树选项:

< b>1。保持当前结构

< b>2。将所有spring配置移动到/main/(java|test)/resources。在这里,我可以看到一个不好的地方。所有的配置文件都在classes目录下,我不确定这是否正确。

3.仅将servlet config移动到 /main/(java|test)/资源,并将其他Spring配置文件保留在 /WEB-INF/目录中。

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

更新:选项2和3中的固定目录命名。

更新:我发现关于Spring最佳实践的阅读[1]非常有趣。它看起来非常有希望并证实了Ralph的解决方案。我仍然对WEB-INF/class中的META-INF目录不满意,但是,嗯...没有什么是完美的。

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

共有1个答案

艾飞宇
2023-03-14

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

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

 类似资料:
  • 按照旧方法,我们将自定义标记库描述文件放在WEB-INF/xxx中。tld和JSP文件加载此文件 当我们使用Spring boot并用java代码(没有web.xml、xxx-servlet.xml等)完全配置应用程序时,应该把它放在哪里? 在资源/WEB-INF下?还是资源/META-INF?

  • 问题内容: 我正在尝试根据某个Maven配置文件是否处于活动状态来使用数据库信息配置Spring配置文件。我已经看到了一些答案,但是很难将它们放在一起。 我有一个这样的Maven个人资料: 还有一个settings.xml文件,如下所示: 并在servlet-context.xml中: 我的问题基本上是,如何将Maven属性放入servlet- context.xml文件中?我需要一个.prope

  • 问题内容: 我有一个使用maven作为构建工具的应用程序。 我正在使用Maven配置文件从不同的配置文件设置不同的属性。 我想做的是将maven中的所有活动配置文件也移植到spring活动配置文件中,以便我可以在bean签名()中引用它们。但我不确定该怎么做。 例如:考虑以下Maven设置 假设我在未指定任何其他配置文件的情况下运行maven,而我希望spring具有和 配置为活动配置文件。 问题

  • 我试图为我的生产环境创建一个构建版本。在我的SpringWeb应用程序中,我有4个.yml文件 应用程序.yml application-development.yml application-staging.yml application-production.yml 在应用中。yml文件,我指定 我使用maven创建一个构建的命令是 在我的目标文件夹中,我可以看到所有属性和我的生产设置没有出现

  • 我对Springs@Configuration和@Conditional annotation是新手。我在问自己,在我的maven文件夹结构中,这些配置java文件应该放在哪里。 到目前为止,我将所有配置xml文件放入src/main|test/Resources/但是使用这种新方法,不再有xml文件。 谢啦

  • 我有spring boot的申请。我需要将spring boot配置文件连接到maven配置文件,所以当我调用命令时 或 它应该调用spring boot加载application-dev.yml或application-prod.yml。当我打电话的时候 它应该在启动之前调用application-dev.yml文件。因此需要从2个命令调用spring boot开发配置文件。我有一个问题,每次我