IOC和DI介绍
IOC
控制反转,将对象的创建权反转交给了Spring
DI:
依赖注入,前提必须有IOC的环境,Spring管理的这个类的时候将这个类的依赖的属性注入(设置)进来
存在问题
IOC 在Spring中的实现方式是通过定义配置文件的方式将需要创建的对象交由Spring来进行管理。但是依然纯在有局限性:父类接口的引用只能实现对父类定义了接口的方法进行调用,对于实现了父类接口的同时又增加了其他的属性,这时候就没办法进行调用了、
解决办法
通过使用依赖注入的方式,定义配置文件将对象的依赖属性注入。就可以解决了以上的问题。
下图为实现类的新属性
配置文件中实现依赖注入
Spring工厂类
Spring工厂类结构图
分析
(1)老版本工厂类为BeanFactory,新版本的工厂类为ApplicationContext
(2)ApplicationContext继承了BeanFactory类(子类对象功能更加强大,目前使用的都是新版本的ApplicadtionContext)
(3)创建实例的时间上:BeanFactory在调用getBean()方法的时候才会生成类的实例,ApplicationContext在加载配置文件的时候就会将Spring管理的类全部实例化
(4)ApplicationContext有两个实现类
1)ClassPathXmlApplicationContext:
作用:用来加载类路径下的配置文件(即src目录下的配置文件)
2)FileSystemXmlApplicationContext
作用:加载文件系统下的配置文件(即计算机文件系统中的配置文件)