【问题标题】:Loading context from within a Jar从 Jar 中加载上下文
【发布时间】:2011-08-26 20:03:26
【问题描述】:

我需要澄清一下;我有一个我构建的 jar,在 jar 里面有一个我需要加载的自定义 application-context.xml 文件。我在 jar 内的一个类中加载文件。当我设置这个 application-context.xml 的 url 时,是特定于我的 jar 类路径的目录,还是仍然是使用 jar- 类路径的项目?

例如——

Jar 的类路径:

src > main > META-INF > application-custom-context.xml

项目的类路径:

src > Libraries > myjar.jar > src > main > META-INF > application-custom-context.xml

我知道这些 url 不准确 :P -- 但是,在我的上下文创建中,我将遵循哪个目录结构。这都是理论上的。今天有人问我这个问题,我不知道该怎么回答。我认为,如果您从 jar 中调用一个类,则类路径应该与该 jar 的内容相关。但是,我认为远非总是正确的 :)

【问题讨论】:

    标签: java spring jar applicationcontext


    【解决方案1】:

    Spring 上下文的“路径”是相对于类路径的。如果 jar 包含在您的类路径中(例如它在 web-inf/lib 中),那么它将被视为就像它在您的项目中一样(web-inf/classes)。

    换句话说,如果您的上下文文件位于 jar 文件内的“META-INF\spring\context.xml”中,那么包含您的 jar 文件的任何人都可以以相同的方式引用它。

    【讨论】:

    • 我想我在你的话中被扭曲了。如果我有一个 app-context.xml 文件位于 META-INF/spring/app-context.xml 的 jar 并且我将该 jar 添加到项目中,引用的 url 是什么?简单地说,如果我要使用 ClassPathXmlApplicationContext("url") 添加 xml。
    • new ClassPathXmlApplicationContext("META-INF/spring/app-context.xml") 或者如果您只是将它放在 jar 文件的根目录中,您可以将其引用为“app-context.xml”
    猜你喜欢
    • 1970-01-01
    • 2020-09-12
    • 2017-12-06
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多