Spring中ClassPathXmlApplication与FileSystemXmlApplicationContext的区别
2018-05-23 16:56
337 查看
转自:https://www.cnblogs.com/ninth/p/6841608.html
一、概述
在项目中遇到加载不到Spring配置文件,简单分析后,写此文备忘!
二、测试所需资源
TestBean.java
public class TestBean { public TestBean(){ System.out.println(this.getClass().getName().concat(" init !")); } public String getTestStr() { return "testStr"; } }applicationContext.xml
<bean id="testBean" class="com.bean.TestBean" />
二、区别
2.1 ClassPathXmlApplicationContext使用方法
ClassPathXmlApplicationContext 默认会去 classPath 路径下找。classPath 路径指的就是编译后的 classes 目录。示例:@Test public void testBean(){ //单配置文件方式一 BeanFactory beanFactory=new ClassPathXmlApplicationContext("applicationContext.xml"); //单配置文件方式二 BeanFactory beanFactory=new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); //多个配置文件 BeanFactory beanFactory=new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); //绝对路径需加“file:”前缀 BeanFactory beanFactory = new ClassPathXmlApplicationContext("file:E:\Workspace\idea_workspace\spring\springtest\src\main\resources\applicationContext.xml"); TestBean bean= (TestBean) beanFactory.getBean("testBean"); assertEquals("testStr",bean.getTestStr()); }运行示例你会发现 “classpath:” 是可以缺省的。
如果是绝对路径,就需要加上 “file:” 前缀,不可缺省。
2.2 FileSystemXmlApplicationContext使用方法
FileSystemXmlApplicationContext 默认是去项目的路径下加载,可以是相对路径,也可以是绝对路径,若是绝对路径,“file:” 前缀可以缺省。示例:@Test public void testBean(){ //classes目录 BeanFactory beanFactory=new FileSystemXmlApplicationContext("classpath:applicationContext.xml"); //项目路径相对路径 BeanFactory beanFactory=new FileSystemXmlApplicationContext("src\\main\\resources\\applicationContext.xml"); //多配置文件 BeanFactory beanFactory=new FileSystemXmlApplicationContext(new String[]{"src\\main\\resources\\applicationContext.xml"}); //绝对目录 BeanFactory beanFactory=new FileSystemXmlApplicationContext(new String[]{"E:\\Workspace\\idea_workspace\\spring\\springtest\\src\\main\\resources\\applicationContext.xml"}); TestBean bean= (TestBean) beanFactory.getBean("testBean"); assertEquals("testStr",bean.getTestStr()); }阅读更多
相关文章推荐
- spring中ClassPathXmlApplication和FileSystemXmlApplicationContext使用区别
- Spring中ClassPathXmlApplication与FileSystemXmlApplicationContext的区别
- Spring中ClassPathXmlApplication与FileSystemXmlApplicationContext的区别以及ClassPathXmlApplicationContext 的具体路径
- spring中ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别
- spring中ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的区别
- 先码后看 Spring中ClassPathXmlApplicationContext与FileSystemXmlApplicationContext 侵立删
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
- FileSystemXmlApplicationContext与ClassPathXmlApplicationContext读取文件目录区别
- spring中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的类图
- Spring中关于ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径设置
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext读取配置文件的方法
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
- JunitTest拿spring容器bean的2种方式[Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext]
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别及用法
- FileSystemXmlApplicationContext和ClassPathXmlApplicationContext的区别
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别是什么?
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
- ClassPathXmlApplicationContext 和FileSystemXmlApplicationContext的区别
- spring中ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的路径问题
- Spring ClassPathXmlApplicationContext和FileSystemXmlApplicationContext