IDEA使用Spring获得类实例的时候报错:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
原因:
会出现这种错误是因为获我们代码在编译的时候没有找到相应的xml文件,IDEA会将编译好的代码都放在target目录中的classes中,如果我们直接将xml文件放在src/main/java路径下的话,IDEA是不会将xml文件放在classes中的(毕竟xml不是java文件,也不需要进行编译)。
解决方法
- 将写好的xml文件放置在target/classes中
- 新建resource目录,并将需要的xml文件放入该目录中
这样之后,我们运行测试,就会发现xml文件被自动放置在classes目录中了。这是因为maven在编译的时候会将resource目录中的资源文件加载到classes目录中。
这个时候我们在进行测试
总结
出现错误的原因就是IDEA编译后的类中的Spring容器找不到我们需要的xml文件,所以只要将配置文件放到他们可以找到的位置(target/classes目录中)就解决问题了。
备注
如果将xml放入resource目录后还是运行失败的话,只需要将项目重构一下就好了,或者重新启动IDEA就可以解决了。b( ̄▽ ̄)d