Spring中到底什么是控制反转

从接触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的控制反转(依赖注入)带来的好处。

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值