xml文件加载

今天想把一个xml文件加载到本地,hadoop下,怎么都不行了。appcontext查找了,没仔细看api,后来同事一看就改过来了。哎,我应该用

FileSystemXmlApplicationContext,原来用的是classpath的方式。其实我也觉得这个应该修改,可我看了半天,没找到那个可以用。于是就接着用classpath试,总不过啊。TMD,我再找appcontext还是没有找到合适的api文档参考,人家都是从那里找的啊。http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/context/support/FileSystemXmlApplicationContext.html, 这也没写。


转载:http://sjsky.iteye.com/blog/787101,其中还有code可以参考。

本人在测试一个方法时需要加载XML配置文件,spring提供了相应的方法,就小小研究了下,在此记录下具体的过程,方便初学者和自己日后回顾。 


    Spring容器最基本的接口就是BeanFactory. BeanFactory负责配置、创建、管理Bean,它有一个子接口ApplicationContext,也称为Spring上下文。Spring容器负责管理Bean与Bean之间的信赖关系。 

    BeanFactory有很多实现类,通常使用org.springframework.beans.factory.xml.XmlBeanFactory类。但对于大部分J2EE应用而言,推荐使用ApplicationContext. ApplicationContext是BeanFactory的子接口,其常用实现类是 org.springframework.context.support.FileSystemXmlApplicationContext org.springframework.context.support.ClassXmlAplicationContext
Springr的配置信息通常采用XML配置文件来设置,因此,创建BeanFactory实例时,应该提供XML配置文件作为参数。、 

下面详细介绍ApplicationContext的实际运用:  

一:ClassPathXmlApplicationContext  
1.没有前缀:默认为项目的classpath下相对路径  
   ApplicationContext appCt = new ClassPathXmlApplicationContext("app.spring.xml"); 

2.前缀classpath:表示的是项目的classpath下相对路径  
   ApplicationContext appCt = new ClassPathXmlApplicationContext("classpath:app.spring.xml"); 

3.使用前缀file 表示的是文件的绝对路径  
   ApplicationContext appCt = new ClassPathXmlApplicationContext("file:D:/app.spring.xml"); 

4.可以同时加载多个文件  
  String[] xmlCfg = new String[] { "classpath:base.spring.xml","app.spring.xml"}; 
  ApplicationContext appCt = new ClassPathXmlApplicationContext(xmlCfg); 

5.使用通配符加载所有符合要求的文件  
  ApplicationContext appCt = new ClassPathXmlApplicationContext("*.spring.xml"); 

二:FileSystemXmlApplicationContext  
1.默认为项目工作路径 即项目的根目录  
ApplicationContext appCt2 = new FileSystemXmlApplicationContext("src/main/resources/app.spring.xml"); 

2.前缀classpath:表示的是项目的classpath下相对路径  
   ApplicationContext appCt2 = new FileSystemXmlApplicationContext("classpath:app.spring.xml"); 

3.使用前缀file 表示的是文件的绝对路径  
   ApplicationContext appCt2 = new FileSystemXmlApplicationContext(" file:D:/app.spring.xml "); 
   ApplicationContext appCt2 = new FileSystemXmlApplicationContext(" D:/app.spring.xml "); 

4.可以同时加载多个文件  
  String[] xmlCfg = new String[] { "src/main/resources/base.spring.xml","classpath:app.spring.xml"}; 
  ApplicationContext appCt2 = new FileSystemXmlApplicationContext(xmlCfg); 

5.使用通配符加载所有符合要求的文件  
  ApplicationContext appCt2 = new FileSystemXmlApplicationContext("classpath:*.spring.xml"); 

你可能感兴趣的:(spring,bean,xml,api,String,File)