spring学习总结(1.1)—IOC的理解

来源:互联网 发布:阿里云服务器重装系统 编辑:程序博客网 时间:2024/06/01 22:19
    之前在学习SSH的时候开始接触Spring这个框架。因为一直在学习新的东西,没有对这部分的学习做总结。最近,也一直在使用Spring,只是没有比较深入的去了解,也就是只是停留在使用这个层面上。从这篇博客开始,对Spring部分的学习做一些记录。从其核心内容开始吧,这篇博客就是IOC的了解。

IOC简介

  IOC(Inversion of Control),大部分翻译为“控制反转”。刚接触这个概念的话,绝对会不知所云。我们知道,通常我们在一个类调用另一个类的时候,需要在代码里实例化一个对象出来。这怎么理解呢?就是说,当一个类需要另一个类时,它自己要去NEW另一个类的对象。即,它要维护自己和其他对象之间的调用关系。那么,IOC的意思就是将维护调用关系这个工作抽出来,交给IOC容器去承担了。也就是“控制反转”!可能这么说你还是不太理解,看个故事吧。
    苦逼程序员应该大部分都要租房子的经历,通常我们怎么找房子的呢?墙壁上的小广告,赶集网,58同城一条一条记录的寻找 ,打电话等等,复杂的过程。这就相当于,你需要一个房子,然后你自己通过这些途径去找。其实,我们还可以找房屋中介公司,告诉他们我们需要一个什么样的房子。然后,等着入住就好了。这里面的区别是什么呢?由你去找房子变成了房屋中介公司为你提供房子。虽然看似简单,但是绝对是思想上的一种突破。IOC控制反转就是这么个道理。应该能理解了吧?

DI(依赖注入)

  前面说了,房屋中介公司为你提供房子。这个提供的过程就是DI了。它实际上是IOC这种思想的实现手段,很多人都说DI其实就是IOC的另一种叫法,这么说也没什么问题。在代码中就是将被调用的对象注入到调用它的对象中去。像打针一样哈!Spring提供了三种注入方式:Set方法、构造器、静态工厂。这个这篇博客先不讲了。

小结

    就这段时间使用Spring的感受上,特别是以XML方式来配置的时候。能够很明显的感觉到,程序中类和类之间的关系是很松的,即耦合很低。整个程序就像是由一个一个的对象组装起来的,而IOC容器就是生产线负责各个部分的生产和组装。

    IOC的关键还是,类间关系的维护交给了容器去做。这样的话,对象之间的调用不再关心要调用谁,而只关心需要谁,需要谁IOC容器就给你提供谁。实际上类间的关系还是程序员在开发的时候定义的,那么这个关系最终是通过XML文件或者注解的方式存在的。只是,这个关系是IOC容器去解读的。这篇就到这里,都是理解,没有代码哈!!   

0 0