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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!