头条 科技 产经 家电 智能 手机 芯片 数码 电商 English
中国IT产经新闻网-移动互联网与智能搜索领域是未来IT产业发展的趋势!
中国IT产经新闻/软件安全/正文
Filesystemxmlapplicationcontex中path取的绝对路径
来源:
2023-08-18
编辑:晓露

       FileSystemXmlApplicationContex和ClassPathXmlApplicationContext路径问题:在码代码的时候发现使用这两个方法写路径的时候总是存在问题,所以百度了一下解决了这个问题。
       ApplicationContext ac = new FileSystemXmlApplicationContext(path);


path取的是绝对路径,通过"ClassName.class.getResource("/").getPath()"的形式取得,在windows下面是类似:/C:/test.xml,在linux的值是/etc/tomcat/webapps/WEB-INFO/test.xml 该表达式在windows下面能够正常使用的,但是在linux下面的时候该表达式会发生文件找不到的异常 但是,path的路径是对的,原因好像是把path当作了相对路径来处理了,然后会在path前面加上一段路径。
       关于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异常,具体什么情况不是很清楚,也是这节中的一个小疑问,等以后有时间了来解决。

产业点评更多
厂商动态更多
热门综合更多
CopyRight @ 2008-2024 IT产经新闻网 All Right Reserved 违者必究 湘ICP备2022017330号-2