spring框架依赖注入与控制反转

来源:互联网 发布:哪个洗衣店好 知乎 编辑:程序博客网 时间:2024/05/17 03:23

    说到spring,我们不得不提到他的两个核心思想 IOC与DI ,依赖注入与控制反转的思想。

【概念】

    IOC 与DI比较官方的方式就不说啦,说一下自己的理解。

    IOC最核心的地方在于,将控制权交到了spring手中,利用工厂反射进行创建类的实例,而不需要我们再new对象了,这是一种很好的解耦和的方式。资源不由使用资源的双方进行管理,而是交给第三方(spring)来进行管理。这就是为什么现在很多人使用spring框架,因为它可以整合很多优秀的框架,spring只是作为一个第三方进行管理。使用第三方进行管理有很多好处:第一 :资源集中管理,实现资源的可配置和易管理。第二:降低了使用资源双方的依赖程度,也就是我们所说的耦合度。

【生活实例】

    代码如人生,编码的思想很多源于生活。

  举个例子:甲方需要一双袜子,而乙方它卖一双袜子,它要把袜子卖出去,并不需要自己去直接找到一个卖家来完成袜子的卖出。它也只需要找第三方,告诉别人我要卖一双袜子。这下好了,甲乙双方进行交易活动,都不需要自己直接去找卖家,相当于程序内部开放接口,卖家由第三方作为参数传入。甲乙互相不依赖,而且只有在进行交易活动的时候,甲才和乙产生联系。反之亦然。这样做什么好处么呢,甲乙可以在对方不真实存在的情况下独立存在,而且保证不交易时候无联系,想交易的时候可以很容易的产生联系。甲乙交易活动不需要双方见面,避免了双方的互不信任造成交易失败的问题。因为交易由第三方来负责联系,而且甲乙都认为第三方可靠。那么交易就能很可靠很灵活的产生和进行了。

也就是说:甲方要达成某种目的不需要直接依赖乙方,它只需要告诉第三方机构就可以了。

    这就是ioc的核心思想。生活中这种例子比比皆是,支付宝在整个淘宝体系里就是庞大的ioc容器,交易双方之外的第三方,提供可靠性可依赖可灵活变更交易方的资源管理中心。另外人事代理也是,雇佣机构和个人之外的第三方。

【依赖注入与控制反转】

  我们所说的依赖注入:就是甲方开放接口,在它需要的时候,将乙方传递进来

  控制反转则是:甲乙双方不互相依赖,交易活动的进行不依赖于甲乙任何一方,整个活动的进行由第三方负责管理。

  我们利用spring进行整合的时候,可以使用依赖注入也可以使用配置文件.xml的方式进行配置。