在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工程中与工程名同级目录
- */
- 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();
- }
- }