您的位置:首页 > 编程语言 > Java开发

Spring中到底什么是控制反转

2016-05-11 20:02 537 查看
从接触spring框架开始,控制反转这个名词也不算陌生了,一直模模糊糊没用弄清楚它真正的含义,知道今天算是比较清楚地明白了。

讲spring中的控制反转,我们先要从一个例子说起:

比如一个类A中,需要用到另一个类B的方法,那么我们就要在A中实例化B,然后调用B的方法。代码如下:

Class A

{

private Class b = new ClassB();

b.active();

}

假设,我们还有C类,D类等。他们也都要用到B的方法,同样地他们也需要实例化B,然后调用B的方法。如果B的实例化是一个十分消耗系统资源的过程,比如数据库连接等。那么这样每次一个类中需要调用B的方法,就要实例化B一次,这将是一个非常消耗系统资源的过程。

在Spring框架中是怎么做的呢?

Spring框架控制反转我是这样理解的,我们每次使用spring框架不是要配置xml文件,这个xml配置bean的id和class。spring中默认的bean为单实例模式,而且通过bean的class,通过反射机制可以创建这个实例,因此,spring框架通过反射替我们创建好了实例并且替我们维护他们。A需要引用B类,在xml我们通过构造器或者是属性把B注入到A中,

其实就是spring框架,把B实例的引用传给了A的成员变量。

读了上面你就会明白,之前需要在A类来负责创建B的实例,现在创建的工作交给了Spring框架,然后spring框架类注入实例的引用。创建对象的责任的转移,即我们理解的控制反转。同时,spring替我们维护B这个单实例,我们一个新的类需要引用时,就不需要重复地实例化B类了,这也减少了系统资源的消耗。

以上就是我所理解的spring的控制反转(依赖注入)带来的好处。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: