我正在学习spring并将Beans.xml放入main / resources文件夹中。我正在使用maven来管理项目。
但是在运行时,它找不到Beans.xml
ApplicationContext context = new ClassPathXmlApplicationContext(
"Beans.xml");
错误是线程“main”中的异常
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [Beans.xml]; nested exception is java.io.FileNotFoundException: class path resource [Beans.xml] cannot be opened because it does not exist.
我正在使用Intellij,想知道为什么?我使用的是弹簧4.3.4
答案 0 :(得分:0)
new ClassPathXmlApplicationContext("file:src/main/resources/beans.xml");
file:preffix指向文件系统资源,而不是classpath。
答案 1 :(得分:0)
尽管@ Hiccup的答案是正确的,但它并不准确,因为如果您的应用程序依赖于FileSystem(使用"文件:"前缀)并打包此应用程序并执行它使用java命令会抛出相同的异常,因此您可以添加此前缀:
ApplicationContext context = new ClassPathXmlApplicationContext(
"classpath:Beans.xml");
但是,如果您已配置Maven(或Ant或Ivy)告诉IntelliJ从main / resources文件夹中找到资源,这是正确的。
因此,如果之前的肯定不是您的情况,则必须将Beans.xml移至src / main / java。