Spring(三):IoC的本质
2023-03-31 10:46:31 时间
一、图例
对照上面的图,我们回想上一篇中几个代码的实现,在没有set注入之前,代码运行完全由Service层控制,用户没有选择权,选择权在程序员手中;但是使用set注入之后,用户可以主动控制service层要执行带代码,具体执行由用户自己选择。
二、本质
控制反转(IoC)是一种设计思想,DI(Dependency Injection依赖注入)是实现IoC的一种方法。在没有IoC的程序中,对象的创建以及对象之间的依赖完全在硬编码在程序中,对象的创建是由程序自己控制,是一成不变的(是指在不修改代码的前提下无法改变);但在有IoC的程序中,对象的的创建由第三方控制,我们无需对代码做出更改即可使程序的执行发生变化。
IoC是Spring框架的核心内容,他有多种方式实现,可以通过XML文件配置、可以使用注解,在新版本Spring中甚至不需要配置也可以实现IoC。
Spring容器在初始化时先读取配置文件,根据配置文件创建对象并存入IoC容器中,使用时再从IoC中获取对象。下图是官方的一个图,就是具体的一个过程:
下图显示了 Spring 工作原理的高级视图。应用程序类与配置元数据相结合,以便在创建和初始化 后,您就拥有一个完全配置且可执行的系统或应用程序。ApplicationContext
采用XML方式配置Bean的时候,Bean的定义信息和实现是分离的;而采用注解二者是结合在一起的,Bean通过注解将定义信息定义在实现类中,可以达到零配置的目的。
控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中,实现控制反转的是IoC容器,实现方法是依赖注入(DI)。
(本文仅作个人学习记录用,如有纰漏敬请指正)
相关文章
- 金融服务领域的大数据:即时分析
- 影响大数据、机器学习和人工智能未来发展的8个因素
- 从0开始构建一个属于你自己的PHP框架
- 如何将Hadoop集成到工作流程中?这6个优秀实践必看
- SEO公司使用大数据优化其模型的5种方法
- 关于Web Workers你需要了解的七件事
- 深入理解HTTPS原理、过程与实践
- 增强分析:数据和分析的未来
- PHP协程实现过程详解
- AI专家:大数据知识图谱——实战经验总结
- 关于PHP的错误机制总结
- 利用数据分析量化协同过滤算法的两大常见难题
- 怎么做大数据工作流调度系统?大厂架构师一语点破!
- 2019大数据处理必备的十大工具,从Linux到架构师必修
- OpenCV中的KMeans算法介绍与应用
- 教大家如果搭建一套phpstorm+wamp+xdebug调试PHP的环境
- CentOS下三种PHP拓展安装方法
- Go语言HTTP Server源码分析
- Go语言HTTP Server源码分析
- 2017年4月编程语言排行榜:Hack首次进入前五十