Spring框架-IOC、DI和工厂类的概述

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

作用:加载文件系统下的配置文件(即计算机文件系统中的配置文件)