微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

applicationContext.xml cannot be opened because it does not exist

初学Spring在用Resource rs=new ClassPathResource("applicationContext.xml");时老是遇到这个错误。后来发现用

ApplicationContext ctx=newFileSystemXmlApplicationContext("WebContent/WEB-INF/applicationContext.xml");可以解决这个问题。

仔细研究了下:

之所以我用ClassPathResource中找不到applicationContext.xml是因为我的这个xml文件在建工程的时候认放在了WebContent/WEB-INF/下面,但是用ClassPathResource是在当前目录也就是我这个java文件所在的目下进行寻找。因此把这个xml文件移动到我的src目录下面就ok了。

同理如果是用ApplicationContext ctx=newClasspathXmlApplicationContext()也是这样是从当前路径寻找,xml文件应在当前目录下。

但是如果用FileSystemXmlApplicationContext呢,它是根据指定的路径来进行寻找,所以要把路径写完整。现在xml路径在src文件夹下。那就要写:ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");

这是比较直接简单的写法,后来又查了查发现对于FileSystemXmlApplicationContext也可以采用:

1.加上classpath:前缀(这个时候xml要放在当前目录也就是src下)

ApplicationContext ctx=new FileSystemXmlApplicationContext("classpath:applicationContext.xml");

2.加上file:把路径写全(用这个方法xml可以放任意地方)

ApplicationContext ctx=new ClasspathXmlApplicationContext("ApplicationContext ctx=new ClasspathXmlApplicationContext("file:F:/workspace/SpringExercis/src/applicationContext.xml");

综上,最简单的方法还是老老实实把xml放在src下方便。

原文地址:https://www.jb51.cc/xml/300045.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。