一、IOC和DI的概念
IOC---Inversion of Control (控制反转)
在java中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你对象内部直接控制。
- 谁控制谁,控制什么 --》IOC容器来控制对象的创建,主要控制了外部资源获取(不仅仅是对象,也包括文件)
- 为何谁反转,哪些方面反转了 --》由我们在自己对象中主动控制区直接获取依赖对象,就是正转 ;而反转是由容器来帮忙创建及注入依赖对象;由容器帮我买查找及注入以来对象,对象只说被动接受依赖对象,所以反转;依赖对象的获取反转了
DI---Dependency Injection(依赖注入):是组件之间依赖关系由容器在运行期决定。通俗的说,由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。
- 谁依赖于谁 应用程序依赖于IOC容器
- 为什么需要依赖 应用程序需要IOC
- 谁注入谁 IOC容器注入应用程序某个对象,应用程序依赖的对象
- 注入了什么 就是注入某个对象所需要的外部资源(对象、资源、常亮数据)
转载于:https://www.cnblogs.com/gudulijia/p/6402213.html
一、IOC和DI的概念相关推荐
- 彻底理解Spring IOC和DI
目录 前言 1. 分享Iteye的开涛对Ioc的精彩讲解 1.1 IoC是什么 1.2 IoC能做什么 1.3 IoC和DI 2. 分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1 I ...
- IOC和DI 控制反转和依赖注入
首先要分享的是Iteye的开涛这位技术牛人对Spring框架的IOC的理解,写得非常通俗易懂,以下内容全部来自原文,原文地址:http://jinnianshilongnian.iteye.com/b ...
- Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧)
1.IoC是什么?IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式.2.IoC解决了什么问题?在IoC出现以前,组件之 ...
- Spring框架——IOC、DI
本篇博客主要介绍Java中的IOC和DI,以及在String框架中的应用.首先,我们将对IOC和DI进行概念介绍,然后讲解它们的关系及在String框架中的应用,最后通过一个实例来展示它们的具体用法. ...
- IOC和DI浅显易懂的理解
Bromon的blog上对IoC与DI浅显易懂的讲解 原文地址 1.IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓I ...
- IoC与DI浅显易懂的讲解
分享Bromon的blog上对IoC与DI浅显易懂的讲解 2.1.IoC(控制反转) IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IoC,对于s ...
- 对IoC与DI浅显易懂的讲解
对IoC与DI浅显易懂的讲解 1.IoC(控制反转) 首先想说说IoC(Inversion of Control,控制反转).这是spring的核心,贯穿始终.所谓IoC,对于spring框架来说,就 ...
- Spring详解—— IOC 和 DI 区别
1.本章前言 我们只要提到Spring这个词,有简单了解过Spring的人基本上都会脱口而出IoC.DI和AOP这几个概念.但是对于初学者来说,一下子搞懂IoC和DI的概念还是挺麻烦的.比如之前我自己 ...
- Spring基本用法1——Spring的核心机制:IOC、DI
前言:一直想写一个关于Spring的系列文章,但是构思许久却不知道以什么方式阐述,毕竟要把一个复杂框架说清楚并不是那么容易的,我也只能尽力而为了.Spring系列文章打算以这样的顺序展 ...
- Spring+IOC(DI)+AOP概念及优缺点
Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ...
最新文章
- mysql serial_mysql – 我应该对表id列使用数据类型SERIAL吗?
- Oracle JDK 和 OpenJDK 有什么区别?
- 4.2.4 磁盘的管理
- /usr/lib/deepin-wine/wine: error while loading shared libraries: libwine.so.1
- ASP.NET 使用 X509Certificate2 系统找不到指定的文件
- pytorch实现常用的一些即插即用模块(长期更新)
- fir.im同款企业级APP分发平台系统源码
- cloudstack centOS安装(二)
- ​2019年最新 BAT 美团头条面试题目及答案汇总
- 【渝粤教育】国家开放大学2018年春季 8668-21T汽车涂装技术(A) 参考试题
- 微信公众号+web后台的工资条发放功能的实现
- ubuntu下安装FoxitReader pdf阅读器
- npm ERR! 400 Bad Request - PUT xxx - Cannot publish over previously published version “1.0.0“.
- 你们还不了解YUM的使用?那就看看这篇文章把~
- 通过网络安装CentOs7
- Beosin EOS-IDE 升级用户体验及常见问题答疑
- 使用蒙特卡洛技术解决一个小虫爬铁丝问题。
- 你还在担心黑客攻击吗?所有程序员都应该掌握的基础网络安全知识,快进来看看吧
- LTE射频测试和测量
- 苹果系统下载工具Mac Downloader
热门文章
- Zookeeper学习笔记01
- 首个 Ubuntu 平板将于今年秋天面世
- 我的女儿二三事(七)(r12笔记第58天)
- 客户端中转request请求乱码
- Acer 4736ZG的Mac之旅
- php 获取来源域名方法,PHP获取域名方法
- 用sqoop从mysql导数hive_使用sqoop从mysql导入到hive基本操作
- 报错ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties
- python生成矢量图_Jupyter Notebook输出矢量图实例
- mysql什么情况下死锁_2020-07-08:mysql只有一个表a,什么情况下会造成死锁,解决办法是什么?...