7

我正在研究使用 Spring 实现的批处理应用程序。

在这个应用程序中,我发现了以下结构:

BATCH PROJECT
      |
      |
      |------> src/main/java (containing the packages)
      |
      |------> src/main/resources
                      |
                      |----------> META-INF
                                      |
                                      |--------> applicationContext.xml (Spring configuration file)

因此,正如您在前面的架构中看到的那样,在src/main/resources中,我找到了META-INF文件夹,其中包含applicationContext.xml文件,该文件包含 Spring 配置(bean 定义)。

这批工作正常,但我有一些疑问:这个地方可以考虑放置applicationContext.xml文件的正确位置吗?

我总是看到META-INF目录进入 web 应用程序(而不是批处理应用程序)到我在这个项目中没有的以下文件夹(因为它不是 web 应用程序):

webapp
|
|_src
|
|_WebContent
  |
  |__WEB-INF
  |
  |__META-INF

它是正确的还是我可以做得更好?

4

2 回答 2

2

这批工作正常,但我有一些疑问:这个地方可以考虑放置 applicationContext.xml 文件的正确位置吗?

是的,这很好。 这是一个正是这样做的 Spring Boot 示例

META-INF旨在包含与该类相关的MANIFEST.MF文件和services子目录ServiceLoader,但其他框架(包括 Spring)也使用它。

参考:

http://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#The_META-INF_directory

http://docs.oracle.com/javase/8/docs/api/java/util/ServiceLoader.html

于 2016-07-06T01:19:32.840 回答
0

对于 Spring-batch,它应该位于:

META-INF/spring/batch/jobs/*.xml

所以,在你的情况下是:

WebContent/META-INF/spring/batch/jobs/applicationContext.xml

于 2020-03-22T11:04:39.813 回答