IoC的基本概念
一、什么是IOC
ioc是一个英文缩写,英文全称是 Inversion of Control,翻译过来是“控制反转”。理解好Ioc的关键是要明确“谁控制谁,控制了什么,为何是反转,哪些方面反转了”
- 谁控制谁:ioc是一种设计思想,它将有别与传统的编写代码方式。通常我们在需要用到对象的属性或方法时,都是手动去new一个对象,这种方式是主动去获取对象实例,ioc则是把对象的创建以及对象之间的依赖关系交给Spring ioc容器管理,这样控制权就被反转了,由主动控制变成被动接受。所以是ico控制了对象。
- 控制了什么:控制了对象的生命周期以及对象之间的依赖关系。
- 为何是反转:本来对象是我们手动去创建的,使用ioc后,变成了被动去接受,所以对象的控制权被反转了。
- 哪些方面反转了:对象的获取反转了,由主动创建变成被动接受。
二、IOC和DI
DI的英文全称是Dependency Injection,即“依赖注入”。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。理解依赖注入的关键是“谁依赖谁,为什么要依赖,谁注入谁,注入了什么”
- 谁依赖谁:应用程序依赖io容器。
- 为什么要依赖:应用程序需要ioc容器提供对象需要的资源;
- 谁注入谁:ioc容器为应用程序对象注入所依赖的对象。
- 注入了什么:注入了某个对象所需要的资源。
IoC的基本概念的更多相关文章
- 工厂类,配置文件,静态方法,反射构成编译器解耦;ioc的一个概念 ;通过xml创建容器里面存储对象
		工厂类,配置文件,静态,反射方法构成编译器解耦;ioc的一个概念 
- Spring.Net---2、IoC/DI基本概念
		---------------------------------------------------------------------------------- (1)IoC/DI的概念 IoC ... 
- IoC容器Autofac之IOC/DI基本概念(二)
		原文:http://www.cnblogs.com/xdp-gacl/p/4249939.html 1.1.IoC是什么 Ioc—Inversion of Control,即“控制反转”,一种设计思想 ... 
- Spring+IOC(DI)+AOP概念及优缺点
		Spring pring是一个轻量级的DI和AOP容器框架. 说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应 ... 
- 【spring揭秘】1、关于IOC的基础概念
		1.基础概念 IOC有三种注入方式: 1.构造方法注入,就是通过构造方法进行实例化成员属性对象,优点是实现对象之后直接就可以使用,但是参数过多也是个麻烦 2.setter方法注入,实现相应的sette ... 
- spring揭秘读书笔记----ioc的基本概念
		在看ico概念之前,先想一下我们平常需要依赖某个类时会怎么做? 无非是在要用到的地方写如下代码: Person person = new Person(); //然后就可以用person对象来获取Pe ... 
- JavaWeb_(Spring框架)Spring中IoC与DI概念入门
		Spring是于2003 年兴起的一个轻量级的Java 开源框架,它由Rod Johnson创建.传统J2EE应用的开发效率低,Spring作为开源的中间件,提供J2EE应用的各层的解决方案,Spri ... 
- Spring框架IOC,DI概念理解
		1.什么是框架? 框架是一种重复使用的解决方案,针对某个软件开发的问题提出的. Spring框架,它是一个大型的包含很多重复使用的某个领域的解决方案. Spring的理念:不要重复发明轮子. 2.Sp ... 
- spring揭密学习笔记(2)-spring ioc容器:IOC的基本概念
		1. IoC的理念就是,让别人为你服务!2. 其实IoC就这么简单!原来是需要什么东西自己去拿,现在是需要什么东西就让别人送过来.一个生动的示例 3.三种依赖注入的方式 IoC模式最权威的总结和解释, ... 
随机推荐
- php 3DES|DES 加密解密(通用)
			<?php //set_include_path(get_include_path().PATH_SEPARATOR.'phpseclib'); include('Crypt/DES.php') ... 
- Spring mvc 返回json包含双引号问题 解决
			解决方式1: @RequestMapping(value="/shopsList.json", produces = "text/html;charset=UTF-8&q ... 
- jemalloc for mysql
			ptmalloc 是glibc的内存分配管理 tcmalloc 是google的内存分配管理模块 jemalloc 是BSD的提供的内存分配管理 三者jemalloc和tcmalloc的性能不分伯仲, ... 
- 基于Sentinel的Redis3.2高可用方案
			默认情况下,Redis node和sentinel的protected-mode都是yes,在搭建集群时,若想从远程连接redis集群,需要将redis.conf和sentinel.conf的prot ... 
- hibernate hql limit的实现方式
			query.setFirstResult(startIndex);//开始索引query.setMaxResults(maxSize);//取几条 如 limit 1,5HQL:query.setFi ... 
- spring 3.x + hibernate4.x 实现数据延迟加载
			Spring为我们解决Hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sess ... 
- spring 整合 hibernate xml配置
			spring 整合 hibernate: hibernate :对数据库交互 spring: ioc aop 整合点: 1.sessionFactory对象不再由hibernate生成,交由spr ... 
- DDBS
			distributed database system 分布式数据库系统 
- 部分真验货客户未取进FP      IN_SALES_ORDER表有数据,前台规划页面没显示
			描述:部分真验货客户未取进FP,检查发现IN_SALES_ORDER表有数据630\600\610行项目数据,但前台只显示630数据,600和610前台没有显示 1.查看IN_SALES_ORDER表 ... 
- Web标准:二、一列布局
			知识点: 1.一列固定宽度 2.一列固定宽度居中 3.一列自适应宽度 4.一列自适应宽度居中 5.一列二至多块布局 1)一列固定宽度 下图是定义了一个高300px,宽400px,颜色是#99FFc ... 
