Spring上下文配置文件问题

时间:2011-12-02 14:56:40

标签: java spring spring-mvc

我构建了一个库(一个类的bounch),它使用spring库和context-application.xml文件(使用编组解析REST响应)。

此时我在我的项目中包含了jar,我正在尝试调用其中一个类,但它告诉我缺少context-application.xml文件。

我正在尝试使用以下方法加载应用程序上下文:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("application-context.xml");

我不太清楚(我是Spring框架中的新手)将jar文件放在哪里使用。

有可能吗?谁能帮助我?

2 个答案:

答案 0 :(得分:2)

它需要位于CLASSPATH的根目录中。在您的情况下 - JAR文件的根目录。如果您使用的是maven - 它是/src/main/resources文件夹。

答案 1 :(得分:1)

如果我理解正确,你想在你的jar之外的jar文件和包含jar文件的主项目中使用XML吗?如果是这样,那么这不是一个好的做法,因为在这种情况下你的jar文件将依赖于应用程序因此不会真正可再发行,所以有一个jar文件的重点是什么?如果你看一下CXF JAX-RS的实现,它就是如何很好地解决它的一个很好的例子。它有一个相反的方法。 CXF里面有许多自己的spring xml文件,需要从主webapp中包含这样的文件。

  <import resource="classpath:META-INF/cxf/cxf.xml"/>
  <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
  <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

通过这种方式,您可以在同一XML文件中定义主要的webapp类和jar类。这里有一个完整的例子:

http://cxf.apache.org/docs/jax-rs.html#JAX-RS-JAXRSandSpringAOP