Spring的IOC原理以及思维导图
Spring知识细节的思维导图
控制反转
spring ioc容器
在Spring框架中的核心组件只有三个:Core、Context和Bean。它们构建起了整个Spring的骨骼架构,没有它们就不可能有AOP、Web等特性功能。
Spring 整体结构图
如果说在三个核心中再选出一个核心,那就非Bean莫属了。可以说,Spring就是面向Bean的编程,Bean在Spring中才是真正的主角。
Spring为何如此流行?你会发现Spring解决了一个非常关键的问题,它可以让你对对象之间的关系转而用配置文件来管理,或者注解,也就是它的依赖注入机制。而这个注入关系在一个叫Ioc的容器中管理。Ioc容器就是被Bean包裹的对象。Spring正是通过把对象包装在Bean中从而达到管理这些对象及做一些列额外操作的目的。
核心组件协同工作
BeanFactory与ApplacationContext的区别
IOC中最核心的接口是Beanfactory提供IOC的高级服务,而ApplicationContext是建立在BeanFactory基础之上提供抽象的面向应用的服务。
我们应该怎么理解和认识Spring的配置文件呢?
Spring 的配置文件是用于指导 Spring 工厂进行 Bean 的生产、依赖关系注入及 Bean 实例分发的“图纸”, J2EE 程序员必须学会并灵活应用这份“图纸”,准确地表达自己的“生产意图”。它是一个或多个标准的XML文档,其ApplicationContext.xml是Spring的默认配置文件,当容器启动时找不到其他的配置文件时,则会尝试加载这个默认的配置文件。
Spring容器成功启动需要以下三方面的条件同时具备:
- Spring的类包必须已经放在Spring的类容器下面
- 应用程序应当为Spring提供完备的Bean的配置信息
- Bean的类都已经放在Spring的类容器下面
Spring启动时读取应用程序提供的Bean的配置信息,并在Spring容器中生成一份相应的Bean的配置注册表,然后根据这张注册表来实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。
而bean的配置信息就是Bean的元数据信息,他由以下五个方面来组成:
- Bean的实现类
- Bean的属性信息 比如:数据源的连接数,用户名和密码等等。
- Bean的依赖关系 Spring根据依赖关系配置完成Bean之间的装配。
- Bean的行为配置 比如:生命周期范围以及生命周期各个过程的回调函数等。
- Bean的创建方式定义 主要说明是通过构造器还是工厂方法来构造Bean。
如下图是它们之间的相互关系:
Spring的IOC原理以及思维导图相关推荐
- 马克思原理复习思维导图与资料
马克思原理思维导图和复习资料 总结的思维导图,其实考完发现如果只做大题是不用背这么多的. 前面的选择题考点前8章都有,但是大题考点只会出现在前几章的辩证法和后面的资本主义剩余价值.经济全球化.共产主义 ...
- 2023最新首发,全网最全 Spring Boot 学习宝典(附思维导图)
作者:bug菌 博客:CSDN.掘金.infoQ.51CTO等 简介:CSDN/阿里云/华为云/51CTO博客专家,博客之星Top30,掘金年度人气作者Top40,51CTO年度博主Top12,掘金/ ...
- DNS原理学习思维导图
附带思维导图笔记原文方便,方便记录编辑.
- Spring IOC执行流程思维导图
IOC执行流程图 执行流程的各个步骤 参考: IOC执行流程及bean生命周期和作用域总结 Spring IoC 核心流程介绍
- 编译原理基础---思维导图
如有错误 请指正!!!
- 数据库原理复习思维导图
第一章:绪论 第二章:关系数据库 第三章:关系数据库标准语言 第四章:数据库安全性
- BERT原理框架思维导图
- 【通信原理】思维导图
[专题链接]:https://blog.csdn.net/chahot/category_10348695.html
- 5分钟带你啃完营销著作《市场营销原理(科特勒)》,思维导图精华版
科特勒这本<市场营销原理>,啃起来的感觉就像在吃压缩饼干,不好吃,但是每一口下去都很饱腹. 书有点厚,MindMaster导图社区作者@肉肉 将它系统整理成以下4张思维导图.掌握了这4张思 ...
最新文章
- iOS开发网络——数据缓存
- java 将本地图片批量上传到oss服务
- prism项目搭建 wpf_Prism完成的一个WPF项目
- Windows MinGW cmake 安装编译Opencv 3.4.3 C++开发环境
- EXCEL表格转换成json数据工具
- Excel的导入与导出
- MS SQL Server:分区表、分区索引详解
- Codeforces 808G. Anthem of Berland
- wilcoxon符号秩检验matlab,符号检验和wilcoxon符号秩检验的区别
- ubuntu 安装pyqt IDE使用eric 辛酸史
- STM32F10x_StdPeriph_Template
- 安徽省太和一中2021高考成绩查询分数,安徽省太和一中
- ASIHTTPRequest实现https双向认证请求
- Docker buil提示https://registry-1.docker.io/v2/: read tcp 10.221->:443: read: connection reset by peer
- CDH5.15离线搭建简易版集群(完整版)
- 苹果刷机未知错误75_苹果iPhone6用iTunes刷机报错未知错误53解决方法
- Spring源码整体分析
- 马上加薪!测试,你的职业发展...
- 深圳科陆集团2015校招软件开发笔试题
- 鸿蒙os关于记事本的增添笔记
热门文章
- 梁梦瑶 20190919-5 代码规范,结对要求
- 天津理工大学密码学期末复习
- Linux 驱动开发 四十三:platform 设备驱动实验(一)
- 开博尔智能android播放器C3,Kaiboer开博尔C3第九代双核智能机顶盒KIUI 7.0安卓4.4.2线刷固件 电视盒固件 开博尔...
- tensorflow2 auto mpg汽车油耗预测实践(3.5节)
- Spring 初始化与 Bean 初始化
- PHP传说中的三码合一
- 《C》C语言编程实现任意阶数的“m序列”并通过gnuplot绘图——在知道本原多项式的前提下
- maven打包配置详解
- SR、JK、T、D触发器图形逻辑符号、真值表及特性方程