2. Spring之IOC容器

1. Spring IOC容器

1.1 IOC和DI

  • IOC(Inversion of Control):反转控制
  • DI(Dependency Injection):依赖注入
  • IOC 就是一种反转控制的思想, 而DI是对IOC的一种具体实现。
1.1.1 IOC(Inversion of Control):反转控制
  • 即控制权的转移,将我们创建对象的方式反转了,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入。使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序创建(spring)
1.1.2 DI(Dependency Injection):依赖注入
  • spring这个容器中,替你管理着一系列的类,前提是你需要将这些类交给spring容器进行管理,然后在你需要的时候,不是自己去定义,而是直接向spring容器索取,当spring容器知道你的需求之后,就会去它所管理的组件中进行查找,然后直接给你所需要的组件.
1.1.3 IOC容器在Spring中的实现
  1. 前提: Spring中有IOC思想, IOC思想必须基于 IOC容器来完成, 而IOC容器在最底层实质上就是一个对象工厂。
  2. 在通过IOC容器读取Bean的实例之前,需要先将IOC容器本身实例化。
  3. Spring提供了IOC容器的两种实现方式
    1. BeanFactory:IOC容器的基本实现,是Spring内部的基础设施,是面向Spring本身的,不是提供给开发人员使用的。
    2. ApplicationContext:BeanFactory的子接口,提供了更多高级特性。面向Spring的使用者,几乎所有场合都使用ApplicationContext而不是底层的BeanFactory。
  4. 在这里插入图片描述
1.1.4 ApplicationContext的主要实现类
  1. ConfigurableApplicationContext :是ApplicationContext的子接口,包含一些扩展方法**refresh()和close()**:让ApplicationContext具有启动、关闭和刷新上下文的能力。
  2. ClassPathXmlApplicationContext:对应**类路径下**的XML格式的配置文件
  3. FileSystemXmlApplicationContext:对应**文件系统**中的XML格式的配置文件
  4. 在初始化时就创建单例的bean,也可以通过**配置的方式指定创建的Bean是多实例的**。
  5. WebApplicationContext : 专门为WEB应用而准备的,它允许从相对于WEB根目录的路径中完成初始化工作
1.1.5 容器的结构图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值