打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext读取配置文件的方法

先说:ClassPathXmlApplicationContext 
这个类,默认获取的是WEB-INF/classes/下的路径,也就是在myeclipse的src下的路径,所以用这个是获取不到WEB-INF下的配置文件的... 

下面是几个用法,引src下的一个文件,有以下几种方式

 

BeanFactory ac = new ClassPathXmlApplicationContext("applicationContext.xml");  BeanFactory ac = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");  BeanFactory ac = new ClassPathXmlApplicationContext("classpath:/applicationContext.xml");  ac.getBean("beanID");  

 

classpath:和classpath*:的区别: 
classpath:   只能加载一个配置文件,如果配置了多个,则只加载第一个 
classpath*:  可以加载多个配置文件,如果有多个配置文件,就用这个

 

BeanFactory ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext-test.xml"});  BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:/applicationContext*.xml");  BeanFactory ac = new ClassPathXmlApplicationContext("classpath*:src/folder/applicationContext*.xml");  

 

再说:FileSystemXmlApplicationContext 
这个类,默认获取的是项目路径,就是项目名的这级.但是我测试,在myeclipse下,执行main方法,获取配置文件,路径用WebRoot/WEB-INF/是没问题的,但是发布到tomcat下,就怎么配都不成功了,无奈,只能把配置文件全部移到src下了,因为担心发布到linux上后,又出现路径问题

下面是几个用法,引WEB-INF下的一个文件,有以下几种方式

BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext.xml");  BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext.xml");  

其中,FileSystemXmlApplicationContext的起始路径是项目路径,所以可以直接这样写WebRoot/WEB-INF 
如果前边加了file:则说明后边的路径就要写全路径了,就是绝对路径 

下面是几个用法,引WEB-INF/classes下的一个文件,有以下几种方式

 

BeanFactory factory = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");  

 

这其实跟ClassPathXmlApplicationContext是一样的,多个就加通配符
下面是几个用法,引WEB-INF下的多个文件,有以下几种方式

 

BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"WebRoot/WEB-INF/applicationContext.xml","WebRoot/WEB-INF/applicationContext-test.xml"});  BeanFactory factory = new FileSystemXmlApplicationContext("WebRoot/WEB-INF/applicationContext*.xml");  BeanFactory factory = new FileSystemXmlApplicationContext("file:D:/workspace/testproject/WebRoot/WEB-INF/applicationContext*.xml");  

 

引WEB-INF/classes下的多个文件,也是一样的

 

BeanFactory factory = new FileSystemXmlApplicationContext(new String[]{"classpath:applicationContext.xml","classpath:applicationContext*.xml"});  BeanFactory factory = new FileSystemXmlApplicationContext("classpath*:applicationContext*.xml");  

 

 

 

 

 

 

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
spring加载applicationContext.xml
解析:Spring IoC容器
spring和testng的整合
Spring中ApplicationContext加载机制和配置初始化
剖析Spring容器的作用及实现方式 - 田野 - JavaEye技术网站
spring加载ApplicationContext.xml的四种方式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服