九月 11, 2019 5:38:20 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh
信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@6433a2: startup date [Wed Sep 11 17:38:20 CST 2019]; root of context hierarchy
九月 11, 2019 5:38:20 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [.idea/applicationContext.xml]
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [.idea/applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist(AbstractXmlApplicationContext.java:93)
出现以上错误信息,最直接/根本原因酒是没有找到applicationContext.xml配置文件;
出现此问题的根本原因是实例ApplicationContext时使用了以下方法来获取配置文件:
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
但是,ClassPathXmlApplicationContext( ) 方法是在其所在的目录中寻找 .xml 配置文件
注意: 这里指的是编译后的 .class 文件所在的目录,不是 .java 文件
通常习惯 applicationContext.xml 文件在 src 目录下,但是IDEA 默认的项目结构导致的(将 .java 文件和 .class 文件分开存放,.java文件存于 src 中,.class 文件存于 target 中),且idea默认是从target中读取配置文件的,因此,ClassPathXmlApplicationContext( ) 方法无法找到 applicationContext.xml。
那如何解决呢?此时只需要将idea默认配置修改成src目录即可。
注意:不能直接把 applicationContext.xml 移至 target 目录下,因为 .xml 配置文件运行时也需要在 .java 文件中获取属性信息
点击 File -> Project Structure(或快捷键 Ctrl+Alt+Shift+S)
修改后,点击apply->ok,重启idea,重新运行即可。