在spring 中 ,我们可以从项目的不同的文件位置读取spring 配置文件,相关位置有四种情况:
1> 在 源代码 src或与src 平齐的目录下
2> 在 WEB-INF 目录下,相对于WEB 工程
3> 在 源代码 src或src 的包下
4> 在 任意位置
相关代码如下:
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.web.context.support.XmlWebApplicationContext;
public class ReadSpringContext {
/**
* 读取spring配置文件的位置,在工作目录下<p>
* 在eclipse工程中与src平级的目录下
*/
public static ApplicationContext readFromProject(String xml) {
//ApplicationContext context = new FileSystemXmlApplicationContext("one.xml");
//UserBean ub = (UserBean)context.getBean("ub");
//System.out.println(ub.getUid());
return new FileSystemXmlApplicationContext(xml);
}
/**
* 读取spring配置文件的位置,在web-inf目录
*/
public static ApplicationContext readFromWebinf() {
//ApplicationContext context = new XmlWebApplicationContext();
//UserBean ub = (UserBean)context.getBean("ub");
//System.out.println(ub.getUid());
return new XmlWebApplicationContext();
}
/**
* 读取spring配置文件的位置,在src或包目录
*/
public static ApplicationContext readFromSrc(String xml) {
//ApplicationContext context = new ClassPathXmlApplicationContext("one.xml");
//ApplicationContext context = new ClassPathXmlApplicationContext("accp/y2/bean/one.xml");
//UserBean ub = (UserBean)context.getBean("ub");
//System.out.println(ub.getUid());
return new ClassPathXmlApplicationContext(xml);
}
/**
* 从任意位置读取spring配置文件
*/
public static BeanFactory readFromAny(String xml) {
//Resource rs=new FileSystemResource("d:/_temp/one.xml");
//BeanFactory factory=new XmlBeanFactory(rs);
//ApplicationContext context = new GenericApplicationContext();
//Resource resource = context.getResource("file:d:/_temp/one.xml");
//BeanFactory factory = new XmlBeanFactory(resource);
//UserBean ub = (UserBean)factory.getBean("ub");
//System.out.println(ub.getUid());
Resource rs=new FileSystemResource(xml);
return new XmlBeanFactory(rs);
}
public static void main(String[] args) {
//readFromSrc();
//readFromProject();
//readFromAny();
//readFromWebinf();
}
}
文章出处:http://blog.163.com/zsq303288862@126/blog/static/93745961201182011262267/