返回顶部

【学习笔记】Spring IoC容器

2.IoC容器

2.1.简介

2.1.1.定义

Spring是一个基于IoC和AOP的结构J2EE系统的框架。

  • IoC 反转控制 是Spring的基础,Inversion Of Control。简单说就是创建对象由以前的程序员自己new构造方法来调用,变成了交由Spring创建对象
  • DI 依赖注入 Dependency Inject。简单地说就是拿到的对象的属性,已经被注入好相关值了,直接使用即可。

2.1.2.原理

  • 传统的创建对象的方式:通过new 关键字主动创建一个对象
  • IoC方式:对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 就像控制权从本来在自己手里,交给了Spring。

打个比喻:传统方式:相当于你自己去菜市场new 了一只鸡,不过是生鸡,要自己拔毛,去内脏,再上花椒,酱油,烤制,经过各种工序之后,才可以食用。IoC:相当于去馆子(Spring)点了一只鸡,交到你手上的时候,已经五味俱全,你就只管吃就行了。

图片来源:https://how2j.cn/k/spring/spring-ioc-di/87.html#nowhere

2.2.两种容器

Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件。通过阅读配置元数据提供的指令,容器知道对哪些对象进行实例化,配置和组装。配置元数据可以通过 XML,Java 注释或 Java 代码来表示。下图是 Spring 如何工作的高级视图。 Spring IoC 容器利用 Java 的 POJO 类和配置元数据来生成完全配置和可执行的系统或应用程序。

图片来源:https://wiki.jikexueyuan.com/project/spring/ioc-containers.html

2.2.1.Spring BeanFactory 容器

最简单的容器,给 DI 提供了基本的支持,它用 org.springframework.beans.factory.BeanFactory 接口来定义。BeanFactory 或者相关的接口,如 BeanFactoryAware,InitializingBean,DisposableBean,在 Spring 中仍然存在具有大量的与 Spring 整合的第三方框架的反向兼容性的目的。

2.2.2.Spring ApplicationContext 容器

该容器添加了更多的企业特定的功能,例如从一个属性文件中解析文本信息的能力,发布应用程序事件给感兴趣的事件监听器的能力。该容器是由 org.springframework.context.ApplicationContext 接口定义。ApplicationContext 容器包括 BeanFactory 容器的所有功能,所以通常建议超过 BeanFactory。BeanFactory 仍然可以用于轻量级的应用程序,如移动设备或基于 applet 的应用程序,其中它的数据量和速度是显著。

posted @ 2020-07-26 08:43  藤原豆腐店の張さん  阅读(75)  评论(0编辑  收藏  举报