Spring IOC基础概念总结:何为控制?何为反转?控制了什么?反转了哪里?
IOC(Inversion of Control 控制反转),是Spring框架核心,是一种重要的设计思想。它实现了将设计好的对象交由IOC容器管理,而不再是传统意义上的在对象内部直接控制。
控制
在学习java初期,我们就已经习惯了直接通过new创建对象,程序主动去创建依赖的对象,而IOC有一个容器来创建这些对象,即IOC容器控制对象的创建,同时,IOC容器控制外部资源的获取。反转
何为正转?传统意义上,我们习惯于自己在对象中主动控制,直接获取依赖对象。而反转,则是由容器来创建好对象,注入对象依赖,便于直接获取。容器帮助我们查找及注入依赖,对象只是被动的接收依赖对象,实现反转。
反转的关键点:依赖对象的获取被反转。IOC与DI
IOC与DI是同一个概念不同角度的描述。
IOC对于spring框架而言,负责控制对象的生命周期和对象间关系。对于某个具体的对象而言,以前它是控制其它对象,现在,所有对象都被spring控制,创建对象的控制权进行了转移。
DI指在程序运行时,动态的向某个对象提供它所需要的其它对象,实现依赖注入。
DI是由Martin Fowler在2004年初的一篇论文中首次提出,他总结到:控制的什么被反转了?就是:获取依赖对象的方式反转了。
Spring IOC基础概念总结:何为控制?何为反转?控制了什么?反转了哪里?相关推荐
- Spring框架基础概念(面试概念解答)
Spring框架概述 什么是Spring? 三层体系架构 Spring框架的优点 Spring的体系结构 Core Container(核心容器) Data Access/Integration(数据 ...
- Spring Boot基础学习笔记22:自定义用户控制、登录与退出
文章目录 零.学习目标 一.准备工作 (一)创建Spring Boot项目 - UserControlDemo01 (二)移植AuthenticationDemo的内容到当前项目 (三)启动应用,测试 ...
- Spring IoC Container 原理解析
IoC.DI基础概念 关于IoC和DI大家都不陌生,我们直接上martin fowler的原文,里面已经有DI的例子和spring的使用示例 <Inversion of Control Cont ...
- Spring IOC入门(上)
Spring IOC(上) 一.什么是IOC 概念 IOC即 Inversion of Control,译为控制反转. IoC is also known as dependency injectio ...
- spring ioc原理分析
spring ioc原理分析 spring ioc 的概念 简单工厂方法 spirng ioc实现原理 spring ioc的概念 ioc: 控制反转 将对象的创建由spring管理.比如,我们以前用 ...
- 从源码深入理解Spring IoC 注解
全注解下的 Spring IoC 本文基于 Spring Boot,所以并不使用 XML 配置,使用注解描述生成对象 版权声明:本文为博主原创文章,未经博主允许不得转载. Ioc 容器简介 Sprin ...
- Spring基础专题——第三章(反转控制与依赖注入)
前言:去年到现在一直没有很好的时间完成这个spring基础+源码的博客目标,去年一年比较懒吧,所以今年我希望我的知识可以分享给正在奋斗中的互联网开发人员,以及未来想往架构师上走的道友们我们一起进步,从 ...
- Spring教程——Spring IoC(控制反转)
IoC 是 Inversion of Control 的简写,译为"控制反转",它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合.更优良 ...
- 谈谈对Spring IOC(控制反转)的理解--转
学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...
最新文章
- Hibernate的dynamic-insert和dynamic-update的使用
- 设置宿舍路由器为多账号登录的方法
- linux内核之旅ppt_一起玩转 Linux 内核之旅开源社区吧
- C#中的表达式和运算符
- 合成艺术字二 :使用的透明类以及所用的颜色选择器JS(完整事列源码)
- python接口自动化(二十)--token登录(详解)
- 付出与收获对等的自然法则,执行力离开去做马上去做
- Django 之 Session的简单使用
- java数组基本操作
- csv在python中的意思,在python中解析csv
- BestCoder Round #66 (div.2)B GTW likes gt
- premiere提示无法使用前一个音频设备配置怎么办?
- 思科路由器——静态路由超级详细
- Codeforces Gym 100015 简要题解
- 计算机软件录音注意事项,GOLDWAVE录音软件使用教程
- 深圳互联网科技公司|外企篇
- 电脑控制手机,脚本帮你实现更强大的功能
- Linux 参数之 max_map_count
- 电路-电源模块汇总(充电器)
- 俄勒冈健康与科学大学计算机,俄勒冈健康与科学大学有何优势