出现异常:加载不了spring的配置文件
- java.io.FileNotFoundException: class path resource [XXXXX.xml] cannot be opened
问题解决(路径问题)
- 这种文件路径是:src/main/java 和 src/main/resources 下面的文件夹或者包中
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
- 这种文件路径是:src/main/java/spring路径下
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring/beans.xml");
问题原因分析
-
正常情况下:
用maven创建的项目,必须把spring的配置文件beans.xml或者applicationContext.xml放到系统根目录下,才能正确加载spring的配置文件,才能正确获取bean。
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
Hello hello = (Hello) context.getBean("hello");
!!!值得注意的是:
maven项目的系统根目录默认是 src/main/java 和 src/main/resources,而不是src,
所以 beans.xml文件必须放到 src/main/java和src/main/resources 下面的文件夹或者包中。
否则就会报上面的错误: java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exit.
-
其他情况下:
如果 beans.xml不是直接放到了 src/main/java 和 src/main/resources路径下,在读取beans文件时候,还要加上路径。
如 beans.xml放在了 src/main/java/spring路径下,那么加载时候要这样写:如下代码。
否则就会报错: java.io.FileNotFoundException: class path resource [beans.xml] cannot be opened because it does not exit.
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring/beans.xml");