为什么spring无法找到beans.xml?

时间:2017-01-25 10:03:50

标签: java spring intellij-idea

我正在学习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

2 个答案:

答案 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。