IOC(概念和原理)

什么是IOC?
1:控制反转,反转控制;把对象的创建和对象之间的调用过程,交给spring管理。
2:使用IOC目的,降低代码耦合度。
3:入门案例就是IOC实现>>>
image.png

IOC底层原理

1:xml解析工厂模式反射设计模式
xml解析:对我们xml文件里面的内容获取值,操作值。
反射:反射的目的,通过得到类的字节码文件,然后可以操作类所有内容。java的类型文件.class ,能得到.class的文件内容就能得到java类
[

](https://blog.csdn.net/huyiju/article/details/81908946)
image.png
image.png
IOC过程
1.第一步,xml配置文件,配置创建的对象。
image.png
第二步,有service类和dao类,创建工厂类。
image.png
IOC(接口)
1.IOC思想基于IOC容器完成,IOC容器底层就是对象工厂。
2.spring 提供和IOC 的容器实现俩种方式:
1.BeanFactory
2.ApplicationContext
BeanFactory:IOC容器基本实现,是spring内部使用的接口,一般不提供,提倡开发人员使用。(可以使用但不提倡)
*加载配置文件的时候,不会创建对象,在获取(使用)对象时候才创建
image.png

ApplicationContext:是BeanFactory接口的子接口,提供更多更强大功能,一般有开发者进行使用。
*一加载配置就创建对象,在web启动时候就开始执行加载解析配置文件去创建对象。

  1. ApplicationContext接口实现类(eclipse查看接口實現類快捷鍵ctrl+T)

image.png
主要实现类为,FileSystemXmlApplicationContext,ClassPathXmlApplicationContext》》》
FileSystemXmlApplicationContext:对应*盘路径
ClassPathXmlApplicationContext:表示类路径,如src下。。
image.png