美文网首页Java相关
Spring - IOC实现

Spring - IOC实现

作者: 万福来 | 来源:发表于2020-04-11 12:02 被阅读0次

在Spring IOC容器的设计中,有两个主要的容器系列,一个是是实现了BeanFactory接口的简单容器系列;
这系列容器只实现了容器的最基本功能;另一个是ApplicationContext应用上下文,它是容器的高级形态,应用上下文在简单容器的基础上,增加了许多面向框架的特性,同时对应用环境做了许多适配。

IOC容器的工作原理

  • BeanDefiniton定位。对于IOC容器来说,它为管理对象之间的依赖关系提供了帮助;
    第一步就是使用Resource接口来统一定位这些BeanDefinition资源,常用的有XML文件配置信息;

  • 容器的初始化。在使用上下文时,需要一个初始化的过程,这个过程的入口实在refresh中实现的,
    初始化过程最重要的就是对步骤一中的BeanDefintion资源进行载入,解析和注册操作,其实就是将BeanDefinition资源转化为容器中的一个HashMap结构进行存储,方便后续的管理和维护。

在容器初始化操作完成后,IOC容器就可以对外使用了,但这时IOC容器内部只是维护了BeanDefinition,
还没有生成具体的Bean和依赖注入。

依赖注入的工作原理

在客户第一次向容器getBean时,IOC容器就会对相关Bean依赖关系进行注入,如果涉及到的依赖关系也没有初始化完成,则容器会直接递归调用getBean直到该Bean所有的依赖Bean都初始化后,所有的依赖对象注入完成后,然后将创建好的Bean返回给客户。
如果Bean配置的lazy-init=false,则会在容器初始化之后,直接遍历所有的BeanDefinition判断lazy-init属性值,如果没有启用懒加载,则直接触发getBean方法,在容器初始化完成后,直接加载这些Bean。

相关文章

  • spring ioc

    spring ioc是什么? spring ioc 有什么好处? spring ioc 是如何实现的?

  • Spring

    Spring 的模块 1 什么是IOC,什么是依赖注入,Spring IOC 如何实现ans: IOC — Inv...

  • 2018-06-08

    IOC 容器 IOC容器和beans Spring实现了IOC (Inversion of Control)(控制...

  • 一、Spring核心篇

    第2章Spring Framework的核心:IoC容器的实现 2.1Spring IoC容器概述 1.IOC容器...

  • 理解Spring IOC

    TODO:未来按自己的思路和理解再整理 IOC概念 阅读:Spring的IOC原理 Spring中IOC实现 阅读...

  • Spring-IoC容器文档(5.0.7BUILD-SNAPSH

    1.1 Spring IoC容器和bean简介 本章介绍了Spring Framework实现的控制反转(IoC)...

  • Spring学习手册(3)—— bean实例化配置

    Spring学习手册(2)—— IOC容器介绍了IOC概念以及Spring关于IOC容器的实现方式,最后概述了Sp...

  • 学习Spring IOC,看完这篇就够了

    学习Spring IOC,看完这篇就够了 说明 官网介绍了控制反转(IOC)原理的Spring框架实现。IoC也称...

  • Spring IOC 实现原理

    Spring IOC 实现原理 IOC: Inversion of Control ,即 "控制反转" , 不是什...

  • 仿Spring IOC容器

    前面介绍了Spring 框架简介。今天我们来实现一个简单的Spring IOC容器。 根据对Spring IOC框...

网友评论

    本文标题:Spring - IOC实现

    本文链接:https://www.haomeiwen.com/subject/nhtymhtx.html