在码代码的时候发现使用这两个方法写路径的时候总是存在问题,所以百度了一下解决了这个问题。
关于FileSystemXmlApplicationContext这个路径有2总写法
- 有盘符的代表的是绝对路径,如 D:/wokespace/spring/WebRoot/WEB-INF/classes/xxx.xml。
- 没有盘符的代表的项目的根路径。比如放在Webroot的WEB-INF下面,路径可以写成"/WebRoot/WEB-INF/xxx.xml"
如果想要在FileSystemXmlApplicationContext读取classpath下面的文件,可以写成/WebRoot/WEB-INF/classes/xxx.xml,也可以写成classpath:xxx.xml,classpath代表的路径就是:/WebRoot/WEB-INF/classes/。
关于ClassPathXmlApplicationContext这个路径默认的是读取workspace下面的classes文件夹下的文件,可以在前面加上classpath:当然不加也是没问题的。这个classes文件夹默认在myeclipse中是不显示的,如果想显示classes文件夹,可以右键WEB-INF ->show in->package explorer,然后在package explorer目录下继续选着WEB-INF文件夹,右键->show in ->navigator,新出来的目录中就显示classes文件夹了。当然也可以用绝对路径来表示:D:/wokespace/spring/WebRoot/WEB-INF/classes/xxx.xml。在偶然一次中发现也可以用file:WebRoot/WEB-INF/classes/xxx.xml也可以读取到相关的文件,但是去掉file:就报IO异常,具体什么情况不是很清楚,也是这节中的一个小疑问,等以后有时间了来解决。