Java 从Jar中加载上下文

Java 从Jar中加载上下文,java,spring,jar,applicationcontext,Java,Spring,Jar,Applicationcontext,我需要一些澄清;我有一个我构建的jar,在jar内部有一个我需要加载的自定义application context.xml文件。我在jar中的一个类中加载该文件。当我设置这个application-context.xml的url时,目录是特定于我的jar类路径的,还是仍然是使用jar类路径的项目 例如—— Jar的类路径: src > main > META-INF > application-custom-context.xml src > Libraries >

我需要一些澄清;我有一个我构建的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
项目的类路径:

src > main > META-INF > application-custom-context.xml
src > Libraries > myjar.jar > src > main > META-INF > application-custom-context.xml
我知道这些url不准确:p——但是,在我的上下文创建中,我将遵循哪个目录结构。这都是理论上的。今天有人问我这个问题,我不知道怎么回答。我认为,如果您从jar调用一个类,那么类路径应该与该jar的内容相关。。但是,我认为并非总是正确的:)

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

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

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


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

我想我被您的话扭曲了。。如果我有一个jar,其中app-context.xml文件位于META-INF/spring/app-context.xml,并且我将该jar添加到项目中,那么引用的url是什么?简单地说,如果我要使用ClassPathXmlApplicationContext(“url”).new ClassPathXmlApplicationContext(“META-INF/spring/app-context.xml”)添加xml,或者如果您只是将其放在jar文件的根目录中,您可以引用为“app-context.xml”,我想我会被您的话扭曲了。。如果我有一个jar,其中app-context.xml文件位于META-INF/spring/app-context.xml,并且我将该jar添加到项目中,那么引用的url是什么?简单地说,如果我要使用ClassPathXmlApplicationContext(“url”).new ClassPathXmlApplicationContext(“META-INF/spring/app-context.xml”)添加xml,或者如果您只是将其放在jar文件的根目录中,您可以将其引用为“app-context.xml”