Spring - 类路径资源中的相对路径
我想知道是否(以及如何)我可以在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是错误的:人们回答的路径是相对于类路径根的,而不是相对于 xml 的位置的! (*您应该注意到“spring 类路径资源中的相对路径”中的示例" 是一个 Maven 项目,因此文件夹资源成为类路径根)
因此,如果您想使用相同的技术,那么导入将是(使用
org/me
):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
):