IOC的概念作用
IOC的概念作用
程序耦合
耦合:程序间的依赖关系,包括:类之间的依赖和方法间的依赖
解耦:实际开发中应该做到:编译期不依赖,运行时才依赖。
解耦的思路:
第一步:使用反射来创建对象,而避免使用new关键字。
第二步:通过读取配置文件来获取要创建的对象全限定类名
控制反转
在应用加载时,创建一个 Map,用于存放三层对象。我们把这个 map 称之为容器。
工厂就是负责给我们从容器中获取指定对象的类。这时候我们获取对象的方式发生了改变。

spring 中工厂的类结构图


BeanFactory 和 ApplicationContext 的区别
- ApplicationContext:子接口。它在创建核心容器时,创建对象采取的策略是采用立即加载的方式,也就是说,只要一读取完配置文件就马上创建配置文件中配置的对象
- 单例对象适用
- 开发中常采用此接口
- BeanFactory: 顶层接口。它在构建核心容器时,创建对象的策略是采用延迟加载的方式,什么时候获取 id 对象了,什么时候就创建对象。
- 多例对象适用
ApplicationContext实现类
ClassPathXmlApplicationContext
它可以加载路径下的配置文件,要求配置文件必须在路径下,否则加载不了(配置文件所在的目录必须要在IDEA中设置为任何类型的目录但是一般设置为Resource类型的目录)
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
1
FileSyetemXmlApplicationContext
它可以加载磁盘下任意路径下的配置文件(必须有访问权限)
加载方式如下:
ApplicationContext ac = new FileSystemXmlApplicationContex("C:\\user\\greyson\\...")
1
AnnotationConfigApplicationContext
它是用于读取注解创建容器的
上次更新: 2024/03/29, 08:56:31