Spring系列教程——03Spring容器的创建
本节我们介绍Spring容器(即ApplicationContext对象)创建的三种方式。
第一种:ClassPathXmlApplicationContext ClassPath类路径加载,指的就是classes路径最常用,spring的配置文件路径以后就直接放在src。
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
第二种:文件系统路径获得配置文件 [绝对路径]
ApplicationContext context = new FileSystemXmlApplicationContext("D:\\SpringFrameWork讲解\\src\\beans.xml");
第三种:使用BeanFactory(了解)
ApplicationContext context = (ApplicationContext) new XmlBeanFactory(new FileSystemResource("D:\\SpringFrameWork讲解\\src\\beans.xml"));
我们来对比一下BeanFactory与ApplicationContext。
BeanFactory 采取延迟加载,第一次getBean时才会初始化Bean
ApplicationContext是对BeanFactory扩展,提供了更多功能。
举个例子,在UserDaoImpl中添加一个构造方法
public UserDaoImpl(){
System.out.println("被创建了");
}
测试BeanFactory:
BeanFactory beanFactory = new XmlBeanFactory(new FileSystemResource("D:\\SpringFrameWork讲解\\src\\beans.xml"));
测试ApplicationContext:
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
对比发现BeanFactory在调用getBean获取对象是UserDaoImpl才会被创建,而ApplicationContext对象一旦创建就会去创建UserDaoImpl对象。