MacOS系统的路径一直显示错误,没办法读取到
@Test
/*读取磁盘系统中的配置文件*/
public void demo3()
{
String path = "file:/Users/apple/Desktop/test/applicationContext.xml";
//创建Spring的工厂类
ApplicationContext applicationContext = new FileSystemXmlApplicationContext(path);
UserService userService = (UserService) applicationContext.getBean("userService");
userService.sayHi();
}
设置path是百度找的回答,但是也不行
正在回答 回答被采纳积分+1
首先,在MacOS和Linux下绝对路径应该这么写 "/Uses/.../..../..",但是这样是报错的,查看FileSystemXmlApplicationContext的解析路径的方法getResourceByPath
源码发现它默认读取的是相对路径,所有只要路径不为空,它就会把第一个 '/' 去掉,如果你真的要写绝对路径,那么应该在路径前再加一个斜杠,这么写 "//Users/../../",这样子它处理的时候只把第一个斜杠去掉了,剩下来的就是绝对路径
或者写相对路径也可以,也是源码推荐的方式,你可以写相对于存放源码的文件夹的路径,如果你的工程目录如下
路径就这么写 src/main/resources/applicationContext.xml
/** * 读取磁盘系统中的配置文件 */ @Test public void demo3() { // 创建Spring的工厂类 ApplicationContext applicationContext = new FileSystemXmlApplicationContext("file:/Users/wanghaisheng/IdeaProjects/spring_ioc/applicationContext.xml"); // 通过工厂获得类 UserService userService = (UserService) applicationContext.getBean("userService"); userService.sayHello(); }
/** * 传统方式的工厂类:BeanFactory */ @Test public void demo5() { // 创建工厂类 BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("/Users/wanghaisheng/IdeaProjects/spring_ioc/applicationContext.xml")); // 通过工厂获得类 UserService userService = (UserService) beanFactory.getBean("userService"); userService.sayHello(); }
建议同学参考一下这个问答下
http://class.imooc.com/course/qadetail/66450
老师从macos上获取路径的方法,尝试以这种方式复制粘贴一下试试。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星