回顾Spirng ioc 控制反转
2024-10-12 16:52:25
Spring的IoC(控制反转) 、DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC 、DI这两个概念是模糊不清的,是很难理解的。结合网上对Spring Ioc的理解,回顾一下自己对Ioc的理解。
Ioc Inversion of Control "控制反转",这不是一种技术,而是一种设计思想。Ioc是将对象交给容器控制管理,而不是传统得自己控制。理解Ioc需明确知道“谁控制谁,控制什么”,“为何反转,哪些方面反转了”
- 谁控制谁,控制什么:一般情况下,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而Ioc有专门的容器来创建这些对象,即由Ioc容器来控制对象的创建;谁控制谁,是Ioc容器控制对象;控制了什么:主要控制外部资源的获取(不仅只包括对象而且还包括文件等)
- 为何反转,哪些方面反转了:传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,而反转则是由容器来帮忙创建及注入依赖对象.为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。
DI Dependency Injection "依赖注入" :组件之间依赖关系由容器在运行期决定,即由容器动态的将某个依赖关系注入到组件之中。通过依赖注入机制,只需要简单的配置,无需任何实现代码就可以指定目标需要的资源。理解DI需明确“谁依赖谁,为何依赖”,“谁注入谁,注入了什么”
- 谁依赖谁,为何依赖:应用程序依赖Ioc容器,需要Ioc容器提供对象所需的外部资源
- 谁注入谁,注入了什么:Ioc容器注入应用程序某个对象,应用程序依赖的对象;注入的是某个对象所需要的外部资源(对象,资源,数据常量)
最新文章
- Keepalived的全局配置
- win7系统下 自带的定时关机
- 获取documents、tmp、app、Library的路径的方法
- 302 Moved Temporarily
- 如何删除控制文件中过去rman备份到磁带的备份集
- Android UI组件----ListView列表控件详解
- word-break:brea-all;word-wrap:break-word的区别
- sublimeLinter-jshint 配置
- Failed to read artifact descriptor--maven问题总结(能力工场)
- Android JNI之调用JAVA方法的返回类型签名
- WPF Image控件中的ImageSource与Bitmap的互相转换
- emmt html生成
- [Drools]JAVA规则引擎 -- Drools
- Servlet的学习之Session(3)
- 计算机网络课程优秀备考PPT之第一章概述(一)
- 2.14. 删除托管对象(Core Data 应用程序实践指南)
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
- Vue入门
- NLP︱LDA主题模型的应用难题、使用心得及从多元统计角度剖析
- VBA中使用正则的两种方式