什么是IOC
- 控制反转,把对象的创建和对象之间调用的过程交给spring进行管理。
- 使用IOC目的,为了降低耦合度。
IOC底层原理
主要有 xml解析、工厂模式、反射
例:
让UserService调用UserDao,原始方式:
缺点:耦合度太高了
工厂模式:
UserService与UserDao之间的耦合度降低了,但是没有降低到最低限度,于是有了IOC
IOC过程
IOC的思想基于IOC的容器完成,IOC容器底层就是对象工厂。
Spring提供IOC容器实现两种方式(两个接口)
- BeanFactory:IOC容器最基本实现方式,是spring内部使用的接口,一般不提供给开发人员使用。BeanFactory加载配置文件时不会创建对象,在获取(使用)对象时才会创建对象
- ApplicationContext:BeanFactory接口的子接口,提供更多更强大的功能,一般面向开发人员使用。ApplicationContext在加载配置文件时就会创建对象
ApplicationContext接口有实现类:
使用FileSystemXmlApplicationContext需要写xml文件在系统盘的路径,ClassPathXmlApplicationContext写类路径。