一、IOC容器
a)、什么是IOC(控制反转)
- 控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理。
- 使用IOC目的:为了耦合度降低
b)、IOC底层原理
- xml解析
- 工厂模式
- 反射 :通过获取字节码文件,可以操作类中所有内容
c) 、Spring提供IOC容器实现提供的两种方式(两种接口)
- BeanFactory【IOC容器基本实现,是Spring内部的使用接口,不提供开发人员进行使用】
加载配置文件时候不会创建对象,在获取对象(使用)的时候才创建对象。
BeanFactory context= new ClassPathXmlApplicationContext("spring-config.xml"); //不会创建对象
User user=context.getBean("user",User.class); //在使用的时候才会创建对象
- ApplicationContext【BeanFactory接口的子接口,提供了更多更强大的功能,一般面向发开人员进行使用】推荐使用
加载配置文件时候就会把配置文件对象进行创建。
ApplicationContext context= new ClassPathXmlApplicationContext("spring-config.xml"); //创建spring-config.xml中的bwan的所有对象
d)、ApplicationContext接口的实现类
new FileSystemXmlApplicationContext()是指在系统盘符下面开始查找
new ClassPathXmlApplicationContext()是指在这个src/main/路径下开始查找