相对于Jar部署位置的参考文件



如何根据部署jar文件的相对位置引用外部beans.xml文件?这是我现在拥有的,它不能工作:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("../beans.xml");

我希望它不在类路径中,这样我就可以在不重新部署的情况下进行更改,但是相对于jar的已部署位置,这样无论我将jar和beans.xml放在文件系统的哪个位置,只要它们彼此之间的相对位置正确,它都可以工作。

如果有帮助的话,顺便说一下,这是Spring。

谢谢!

应用程序上下文文件必须在类路径上才能允许ClassPathXmlApplicationContext工作。要使用相对路径,必须使用FileSystemXmlApplicationContext

ApplicationContext context = new FileSystemXmlApplicationContext("../beans.xml");

您可以在您的spring-config.xml中导入外部bean配置文件。

<beans ...>
   <import resource="file:/path/to/external/config.xml"/>
</beans>

上面的Spring配置将导入/path/to/external/config.xml。拥有一个外部文件将允许您配置bean,而不必重新构建主war/jar。

在您的Java代码中,您可以按照如下方式加载它:
ApplicationContext context = new ClassPathXmlApplicationContext("config.xml");

config.xml文件应该在:

project-classpath/config.xml

关于加载外部配置文件的更多信息,您可以在这里找到

最新更新