Spring - 类路径资源中的相对路径

时间:2011-10-26 07:30:35

标签: spring resources path relative

我想知道是否(以及如何)我可以在spring中使用相对类路径资源路径。我遵循了应用程序结构:

src/
  org/me/
    mainContext.xml
    app1/
      app1Context.xml
    app2/
      app2Context.xml
      comp1/
        comp1Context.xml

现在在mainContext.xml我想通过相对路径导入bean定义:

<import resource="classpath:app1/app1Context.xml"/>
<import resource="classpath:app2/app2Context.xml"/>

app2Context.xml中的类似内容:

<import resource="classpath:comp1/comp1Context.xml"/>

org.me.app2代码位于不同的jar(WEB-INF/lib/app2.jar))。

但是目前我收到了FileNotFoundException异常:

java.io.FileNotFoundException: class path resource [app1/app1Context.xml] cannot be opened because it does not exist

我可以使用这样的相对路径吗?怎么样?解析了相对类路径路径到哪条路径?

有一个类似的问题(Relative paths in spring classpath resource),但人们只是在暗示我现在在做什么(现在什么都不行)。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

  

有一个类似的问题(Relative paths in spring classpath resource),但人们只是在暗示我现在在做什么(现在什么都不行)。

这是错误的:人们回答了相对于类路径根的路径,但不是相对于xml的位置! (*您应该注意到“Relative paths in spring classpath resource”中的示例是一个maven项目,因此文件夹资源成为类路径根目录

因此,如果您想使用相同的技术,那么导入将是(使用org/me):

<import resource="classpath:org/me/app1/app1Context.xml"/>
<import resource="classpath:org/me/app2/app2Context.xml"/>