1.什么是IOC?
IOC(Inversion of Control):(只能解决程序间的依赖关系,别的什么也干不了)
其思想是 反转资源获取的方向。
传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源,而应用了IOC之后,则是容器主动地将资源推送给它所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源。这种行为也称为查找的被动形式。
2.IOC过程
原来:我们在获取对象时,都是采用new的方式,是主动的。
现在:我们获取对象时,同时跟工厂要,由工厂为我们查找或者创建对象。是被动的。
IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
Spring提供IOC容器实现两种方式: (两个接口)
- (1) BeanFactory: IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用.
*加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象 - (2) ApplicationContext: BeanFactory.接口的子接口,
提供更多更强大的功能,一般由开发人员进行使用
*加载配置文件时候就会把在配置文件对象进行创建
ApplicationContext接口的实现类
- 1、ClasspathXmlApplicationContext;它是从类的根路径下加载配置文件推荐使用这种
- 2、FileSystemXmlApplicationContext;它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。
- 3、AnnotationConfigApplicationContext:当我们使用注解配置容器对象时,需要使用此类来创建spring容器。它用来读取注解。