2、Spring5框架-IOC容器(底层原理)

IOC的概念和原理:

1、什么是 IOC

(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理。
(2)使用 IOC 目的:为了耦合度降低。
 

2、IOC 底层原理

(1)xml 解析、工厂模式、反射(通过得到类的字节码文件来操作类中所有的内容)

(2)画图讲解 IOC 底层原理:若想在UserService中调用UserDao的方法:

使用平常的方式使用:

UserDao dao = new UserDao(); //这样的方式耦合度较高,不利于程序的扩展

 使用工厂模式:

 

 

 降低了Service和Dao的耦合度,使用工厂模式进行解耦,但是工厂依然存在耦合度,最终的目的是将耦合度降低到最低。

下面是IOC的解耦过程:

 

 

 

IOC 的 BeanFactory  接口

1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂

2、Spring 提供 IOC 容器实现两种方式:

(两个接口,这两个接口的功能类似,都可以加载文件,然后通过工厂的过程创建对象)

(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
  * 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
  * 加载配置文件时候就会把在配置文件对象进行创建 
 
一般都会把耗时耗资源的操作都放在项目启动时进行操作,所以一般在操作中使用第二种方式。

3、ApplicationContext 接口有实现类

在IDEA中CTRL+H调出类的结构

 

 ClassPath表示的是src下的路径,而FileSystem的路径是盘符的全路径(即为绝对路径)

 

 

 

posted @ 2022-06-06 02:42  卓汶  阅读(55)  评论(0编辑  收藏  举报