在Spring中有一个核心概念叫容器,顾名思意,容器是用来装东西的,装的什么东西呢?就是需要管理的对象,装在哪里呢?一个HashMap中,我们用容器来实例化对象,管理对象之间的依赖。
BeanFactory和ApplicationContext
BeanFactory是最顶层最基本的接口,它描述了容器需要实现的最基本的功能。
ApplicationContext依赖BeanFactory接口
,它描述的内容更加广泛。
当然除了这两个接口还有很多其它接口,这里不重点讨论
我们来比较一下beanFactory和applicationContext:
BeanFactory 是 Spring 容器中的顶层接口。
ApplicationContext 是它的子接口。
BeanFactory 和 ApplicationContext 的区别:
创建对象的时间点不一样。
ApplicationContext:只要一读取配置文件,默认情况下就会创建对象。
BeanFactory:什么时候使用什么时候创建对象。
BeanFactory的创建
ClassPathResource resource = new ClassPathResource("bean.xml");
BeanFactory factory = new XmlBeanFactory(resource);
ApplicationContext接口的实现类
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext
ClassPathXmlApplicationContext它是从类路径下加载配置文件来实例化容器,推荐使用
FileSystemXmlApplicationContext它是从磁盘路径上加载配置文件来实例化容器



