如何根据部署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
关于加载外部配置文件的更多信息,您可以在这里找到