2 weixin 36198837 weixin_36198837 于 2016.09.21 13:46 提问

Spring框架中的ioc和di技术

Spring框架中的ioc和di技术
其中ioc叫控制反转 就是把创建对象的权利从开发者转移到ioc容器。那di依赖注入究竟是将属性注入给ioc创建的对象还是将ioc创建的对象注入给程序中的其他对象

6个回答

arrogant_boom
arrogant_boom   2016.09.21 14:03

应该是将对象看作一个bean,然后在一个对象中引用其他对象的时候,把要引用的对象(此时一般是通过定义一个接口)设置为bean,根据xml或者java进行配置,进行自动注入。

weixin_36198837
weixin_36198837   2016.09.21 14:13

别沉啊 菜鸟问题不至于难回答吧

u013693144
u013693144   2016.09.21 14:26

看了好多博客,,貌似都把,ioc控制翻转等同于di 依赖注入,ioc就是你讲的吧对象的控制权交由容器来管理,di依赖注入就是把对象的属性以及对象与对象之间的依赖关系,交由容器来注入(配置bean的时候,property,或者constructor 注入对象属性或者引用其他bean。。。如下代码中的name属性和User对象,配置时就要注入name属性或一级注入User bean,交由容器来管理,容器初始化的时候,装配),所以把ioc和di看成同样的概念也不无道理(以上是自己的理解,spring也是自己学的,如果有误,请指出。。。)

 public class Student{

 private String name;
 private User user;
 。。。。。。
 }
Veggiel
Veggiel   2016.09.21 14:49
quasimodo_es
quasimodo_es   2016.09.21 16:12

属性注入给ioc创建的对象!
控制反转的bean,所有依赖的bean,都需要spring容器进行管理,不然就要new;
理论太多,百度去吧!

whiteForever
whiteForever   2016.09.21 17:03

spring基本的三个特性 IOC DI AOP
首先先说说 IOC—Inversion of Control,即“控制反转“,也就是对象不用我们new 而是spring new出来,那么这个对象就由spring来控制。
实现原理也相对容易理解,spring3之前 基本都是xml配置文件配置 包+类型的class 然后反射生成对象,放入spring的容器里面。
然后来说说DI Dependency Injection,依赖注入 。如果我们A对象中需要使用B对象 A,B都是由spring生成的,那么B注入A的过程就是依赖注入了。
说完上面的两个东西的概念,在来说说我个人的见解
大多数人都觉得IOC和DI一样,但是其实他们并不是一个东西,因为从原理上来说是要有IOC然后才可以有DI。并且spring不止DI还有个DF,依赖查找。相信做过多年开发的老司机都用过spring的一个接口ApplicationContextAware 用这个来得到spring的IOC容器(习惯叫spring的容器叫IOC容器)然后通过用类型也好或者用名称也好自己得到spring的一个对象吧,这个就是一个DF的过程。
最后说说这个AOP Aspect-OrientedProgramming,面向方面编程(设计的思想)
底层原理也不难理解,动态代理和反射呗。AOP个人感觉是spring比较牛逼的一个东西,基本注解都是靠这东西实现的
手打的很累

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Spring框架中IOC和DI的区别
IOC:全称Inversion of Control,中文释义为控制反转。    简单地说,IOC就是把对象的实例化工作交由Spring容器来完成。IOC可以说是一种思想,传统的应用程序是我们自己去创建(new)对象,为"正转",而IOC是将创建对象的工作交给Spring容器,对象是被动的被Spring容器创建,即为“反转”,“控制”即为Spring容器控制对象的创建。DI:全称Dependenc...
Spring的两大核心--IOC和DI
前边我们讲了Spring的特点,即它是一个开源、轻量级、一站式的为了简化企业级应用开发而存在的容器框架。下边我们来讲一讲Spring框架的两个核心当中其中一个核心的概述:IOC和DI。   1. IOC( inverse of control) 控制反转   控制反转是Spring框架的一大特点,即反转资源获取的方向。传统的资源查找方式是组件向容器发起请求查找资源,作为回应,容器适时的返回资源
关于spring框架中的IOC/DI和AOP,以及声明式事务管理的理解
IOC/DI:中文意思控制反转/依赖注入,针对以前编程,类中的属性都是写死的,直接在程序中给成员变量初始化。这样的编程,耦合度太高,代码的灵活性和扩展性太差。spring的处理方式是,在配置文件中,将类中的需要初始化的成员变量罗列出来。在应用程序启动的时候,针对配置文件的配置,初始化对象。这些对象默认是Singleton的,保存在容器中(map中)。当类初始化的时候,从容器中取出。这样不仅不仅可以节
Spring框架的IOC/DI的自己实现
今天咱们就一起探索spring是怎么完成IOC/DI工作的,也自己做一个简单Spring框架! Spring中Bean的定义 作用:在spring中使用的bean,都有某些公共属性,此类就是对公共属性的定义 [java] view plain copy  print? public class BeanDefine {
Spring AOP/DI/IOC 简述及使用
1. Spring介绍 Spring是轻量级的J2EE应用程序框架。Spring的核心是个轻量级容器(container),实现了IoC(Inversion of Control)模式的容器,Spring的目标是实现一个全方位的整合框架,在Spring框架下实现多个子框架的组合,这些子框架之间彼此可以独立,也可以使用其它的框架方案加以替代,Spring希望提供一站式的框架整合方案 。 Sp
对spring中IOC与DI的理解
首先想说说IOC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。 所谓IOC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。举个简单的例子,我们是如何找女朋友的?常见的情况是,我们到处去看哪里有长得漂亮身材又好的mm,然后打听她们的兴趣爱好、qq号、电话号、ip号、iq号………,想办法认识她们,以程序的角度说,我
实现一个简易的IoC框架(上)(此篇与Spring.NET无关,为自己手写IoC框架)
讲了这么多理论,我们来手动实现一个简易的IoC框架的,这样可以加深IoC的理论知识。   一、思路   在我们使用Spring.NET框架的时候,首先需要实例化Spring.NET容器, 然后调用IoC容器IObjectFactory接口中GetObject方法获取容器中的对象。通过这一点就可以告诉我们制作IoC容器需要写一个获取 XML文件内容的方法和申明一个Dictionary<s
谈谈Spring中的IOC、DI和AOP概念
看了大神的解释感觉受益匪浅,所以就将其保存,方便自己看,并最后总结出自己的理解 1. IOC(Inverse of Control):控制反转,也可以称为依赖倒置。         所谓依赖,从程序的角度看,就是比如A要调用B的方法,那么A就依赖于B,反正A要用到B,则A依赖于B。所谓倒置,你必须理解如果不倒置,会怎么着,因为A必须要有B,才可以调用B,如果不倒置,意思就是
Spring核心思想,IoC与DI详解(如果还不明白,放弃java吧)
1.IoC是什么? IoC(Inversion of Control)控制反转,IoC是一种新的Java编程模式,目前很多轻量级容器都在广泛使用的模式。 2.IoC解决了什么问题? 在IoC出现以前,组件之间的协调关系是由程序内部代码来控制的,或者说,以前我们使用New关键字来实现两组间之间的依赖关系的。 这种方式就造成了组件之间的互相耦合。IoC(控制反转)就是来解决这个问
浅谈对Spring IOC以及DI的理解
浅谈对Spring IOC以及DI的理解