IOC---Inversion of Control (控制反转)

在java中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你对象内部直接控制。

  • 谁控制谁,控制什么  --》IOC容器来控制对象的创建,主要控制了外部资源获取(不仅仅是对象,也包括文件)
  • 为何谁反转,哪些方面反转了 --》由我们在自己对象中主动控制区直接获取依赖对象,就是正转 ;而反转是由容器来帮忙创建及注入依赖对象;由容器帮我买查找及注入以来对象,对象只说被动接受依赖对象,所以反转;依赖对象的获取反转了

DI---Dependency Injection(依赖注入):是组件之间依赖关系由容器在运行期决定。通俗的说,由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。

  • 谁依赖于谁 应用程序依赖于IOC容器
  • 为什么需要依赖 应用程序需要IOC
  • 谁注入谁 IOC容器注入应用程序某个对象,应用程序依赖的对象
  • 注入了什么 就是注入某个对象所需要的外部资源(对象、资源、常亮数据)

转载于:https://www.cnblogs.com/gudulijia/p/6402213.html

一、IOC和DI的概念相关推荐

  1. 彻底理解Spring IOC和DI

    目录 前言 1. 分享Iteye的开涛对Ioc的精彩讲解 1.1 IoC是什么 1.2 IoC能做什么 1.3 IoC和DI 2. 分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1 I ...

  2. IOC和DI 控制反转和依赖注入

    首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/b ...

  3. Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧)

    1.IoC是什么?IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式.2.IoC解决了什么问题?在IoC出现以前,组件之 ...

  4. Spring框架——IOC、DI

    本篇博客主要介绍Java中的IOC和DI,以及在String框架中的应用.首先,我们将对IOC和DI进行概念介绍,然后讲解它们的关系及在String框架中的应用,最后通过一个实例来展示它们的具体用法. ...

  5. IOC和DI浅显易懂的理解

    Bromon的blog上对IoC与DI浅显易懂的讲解 原文地址 1.IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓I ...

  6. IoC与DI浅显易懂的讲解

    分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1.IoC(控制反转) IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IoC,对于s ...

  7. 对IoC与DI浅显易懂的讲解

    对IoC与DI浅显易懂的讲解 1.IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IoC,对于spring框架来说,就 ...

  8. Spring详解—— IOC 和 DI 区别

    1.本章前言 我们只要提到Spring这个词,有简单了解过Spring的人基本上都会脱口而出IoC.DI和AOP这几个概念.但是对于初学者来说,一下子搞懂IoC和DI的概念还是挺麻烦的.比如之前我自己 ...

  9. Spring基本用法1——Spring的核心机制:IOC、DI

            前言:一直想写一个关于Spring的系列文章,但是构思许久却不知道以什么方式阐述,毕竟要把一个复杂框架说清楚并不是那么容易的,我也只能尽力而为了.Spring系列文章打算以这样的顺序展 ...

  10. Spring+IOC(DI)+AOP概念及优缺点

    Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ...

最新文章

  1. mysql serial_mysql – 我应该对表id列使用数据类型SERIAL吗?
  2. Oracle JDK 和 OpenJDK 有什么区别?
  3. 4.2.4 磁盘的管理
  4. /usr/lib/deepin-wine/wine: error while loading shared libraries: libwine.so.1
  5. ASP.NET 使用 X509Certificate2 系统找不到指定的文件
  6. pytorch实现常用的一些即插即用模块(长期更新)
  7. fir.im同款企业级APP分发平台系统源码
  8. cloudstack centOS安装(二)
  9. ​2019年最新 BAT 美团头条面试题目及答案汇总
  10. 【渝粤教育】国家开放大学2018年春季 8668-21T汽车涂装技术(A) 参考试题
  11. 微信公众号+web后台的工资条发放功能的实现
  12. ubuntu下安装FoxitReader pdf阅读器
  13. npm ERR! 400 Bad Request - PUT xxx - Cannot publish over previously published version “1.0.0“.
  14. 你们还不了解YUM的使用?那就看看这篇文章把~
  15. 通过网络安装CentOs7
  16. Beosin EOS-IDE 升级用户体验及常见问题答疑
  17. 使用蒙特卡洛技术解决一个小虫爬铁丝问题。
  18. 你还在担心黑客攻击吗?所有程序员都应该掌握的基础网络安全知识,快进来看看吧
  19. LTE射频测试和测量
  20. 苹果系统下载工具Mac Downloader

热门文章

  1. Zookeeper学习笔记01
  2. 首个 Ubuntu 平板将于今年秋天面世
  3. 我的女儿二三事(七)(r12笔记第58天)
  4. 客户端中转request请求乱码
  5. Acer 4736ZG的Mac之旅
  6. php 获取来源域名方法,PHP获取域名方法
  7. 用sqoop从mysql导数hive_使用sqoop从mysql导入到hive基本操作
  8. 报错ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties
  9. python生成矢量图_Jupyter Notebook输出矢量图实例
  10. mysql什么情况下死锁_2020-07-08:mysql只有一个表a,什么情况下会造成死锁,解决办法是什么?...