IOC的概念和原理
什么是IOC
1.控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
2.使用IOC目的:为了耦合度减低
IOC底层原理
- xml解析
- 工厂模式
- 反射
底层原理示例图
目的:将耦合度降低到最低限度
IOC过程
1.xml配置文件,配置创建的对象
<bean id = "dao" class = "com.atguigu.UserDao"></bean>
2.有service类和dao类,创建工厂类
class UserFactory
{public static UserDao getDao(){String classValue = class属性值;//xml解析Class clazz = Class.forName(classValue);//通过反射创建对象return (UserDao)clazz.newInstance();}
}
iOC接口
1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂
2.Spring提供IOC容器实现两种方式:(两个接口)
1.BeanFactory:
a.IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用
b.加载配置文件的时候不会创建对象,在获取对象(使用)的时候才会去创建对象
2.ApplicationContext:
a.BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
b.加载配置文件的时候就会把在配置文件中的对象进行创建
3.ApplicationContext接口的实现类
1.FileSystemXmlApplicationContext:绝对路径
2.ClassPathXmlApplicationContext:相对路径