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

时间:2016-07-05 10:00:50

标签: java spring applicationcontext meta-inf

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

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

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

因此,正如您在上一个架构中所看到的,进入 src / main / resources ,我找到了包含 applicationContext的 META-INF 文件夹。包含Spring配置的xml 文件(bean定义)。

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

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

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

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

2 个答案:

答案 0 :(得分:0)

  

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

是的,这很好。 Here is a Spring Boot example that is doing precisely this

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

参考文献:

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

答案 1 :(得分:0)

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

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

因此,您的情况是:

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