Spring框架中的ioc和di技术
其中ioc叫控制反转 就是把创建对象的权利从开发者转移到ioc容器。那di依赖注入究竟是将属性注入给ioc创建的对象还是将ioc创建的对象注入给程序中的其他对象
应该是将对象看作一个bean,然后在一个对象中引用其他对象的时候,把要引用的对象(此时一般是通过定义一个接口)设置为bean,根据xml或者java进行配置,进行自动注入。
别沉啊 菜鸟问题不至于难回答吧
看了好多博客,,貌似都把,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;
。。。。。。
}
http://blog.csdn.net/veggiel/article/details/52412400
属性注入给ioc创建的对象!
控制反转的bean,所有依赖的bean,都需要spring容器进行管理,不然就要new;
理论太多,百度去吧!
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比较牛逼的一个东西,基本注解都是靠这东西实现的
手打的很累
一篇文章给你整的明明白白https://blog.csdn.net/zyq8514700/article/details/98250683