如何根据外部beans.xml文件相对于我的jar文件部署位置的位置来引用它?这就是我现在所拥有的,但不起作用:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("../beans.xml");
我希望它不在类路径中,因此我可以在不重新部署的情况下更改内容,但相对于jar的已部署位置,无论我将jar和beans.xml放在文件系统中的哪个位置,它都可以正常工作,如只要它们相对于彼此正确定位。
这是Spring btw,如果有帮助的话。
谢谢!
答案 0 :(得分:0)
应用程序上下文文件必须位于类路径上才能使ClassPathXmlApplicationContext
起作用。要使用相对路径,您必须使用FileSystemXmlApplicationContext
。
ApplicationContext context = new FileSystemXmlApplicationContext("../beans.xml");
答案 1 :(得分:0)
您可以在spring-config.xml
中导入外部bean配置文件,您可以导入extends
<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
有关加载外部配置文件的更多信息,您可以找到 here