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

发布于 2024-12-11 20:01:34 字数 1002 浏览 0 评论 0原文

我想知道是否(以及如何)我可以在 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] 无法打开,因为它不存在

我可以使用这样的相对路径吗?如何?相对类路径路径解析到哪个路径?

有一个类似的问题(Spring 类路径资源中的相对路径),但人们是只是建议我已经在做的事情(以及现在不起作用的事情)。

I'm wondering if if (and how) I could use relative classpath resource paths within spring. I've following application structure:

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

Now in mainContext.xml I'd like to import bean definitions by relative paths:

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

and similary in app2Context.xml:

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

(The org.me.app2 code is in different jar (WEB-INF/lib/app2.jar)).

However currently I'm getting FileNotFoundException exception:

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

Can I use such relative paths? How? To which path are relative classpath paths resolved?

There is a similar question (Relative paths in spring classpath resource) but people are only suggesting what I'm already doing (and what doesn't work right now).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

过度放纵 2024-12-18 20:01:34

有一个类似的问题(Spring 类路径资源中的相对路径)但人们只是建议我已经在做的事情(以及现在不起作用的事情)。

这是错误的:人们回答的路径是相对于类路径根的,而不是相对于 xml 的位置的! (*您应该注意到“spring 类路径资源中的相对路径”中的示例" 是一个 Maven 项目,因此文件夹资源成为类路径根)

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

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

There is a similar question (Relative paths in spring classpath resource) but people are only suggesting what I'm already doing (and what doesn't work right now).

That is wrong: The people answered with paths that are relative to the classpath root, but not relative to the location of the xml! (*You should notice that the example in "Relative paths in spring classpath resource" is a maven project, so the folder resources become the classpath root)

So if you want to use the same technique then the imports would be (with org/me):

<import resource="classpath:org/me/app1/app1Context.xml"/>
<import resource="classpath:org/me/app2/app2Context.xml"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文