一、IOC容器
1. 什么是IOC?
- 把对象创建和对象之间的调用过程,交给Spring进行管理
- 使用目的:降低耦合度
2. IOC底层?
- xml解析
- 工厂模式
- 反射
IOC是一个容器,本质上就是一个对象工厂,在里面可以读取xml配置文件,通过反射创建对象
3. Spring提供的IOC容器实现的两种方式(两个接口)
-
BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,面向 Spring 本身,加载配置文件时候不会创建对象,在获取对象时才会创建对象
-
ApplicationContext接口:BeanFactory接口的子接口,提供给开发人员使用(加载配置文件时候就会把在配置文件对象进行创建)
ApplicationContext 的主要实现类:
- ClassPathXmlApplicationContext:从类路径下(bin目录下)加载配置文件
- FileSystemXmlApplicationContext: 从文件系统中加载配置文件
二者区别
- BeanFactory 才是 Spring 容器中的顶层接口,ApplicationContext 是它的子接口。
- BeanFactory 和 ApplicationContext 的区别:
- 创建对象的时间点不一样
- ApplicationContext:只要一读取配置文件,默认情况下就会创建对象
- BeanFactory:什么使用什么时候创建对象