我可以将 META-INF 文件夹放入 Spring 命令行应用程序的 src/main/resources 中吗?

And*_*ili 7 java spring meta-inf applicationcontext

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

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

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

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

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

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

webapp
|
|_src
|
|_WebContent
  |
  |__WEB-INF
  |
  |__META-INF
Run Code Online (Sandbox Code Playgroud)

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

ck1*_*ck1 2

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

是的,这很好。 下面是一个 Spring Boot 示例,它正是执行此操作

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

参考:

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