美文网首页IT
Spring的核心机制:依赖注入

Spring的核心机制:依赖注入

作者: chs_sandy | 来源:发表于2020-08-28 11:44 被阅读0次

    曾用名:控制反转(Inversion of Control ,IoC)
    正用名:依赖注入(Dependency Injection)
    举例:
    一个人(java实例,调用者)需要一把斧头(java实例,被依赖对象)。
    原始社会(原始方法):需要斧头的人需要自己磨一把斧头(调用者主动new一个被调用者)。
    进入工业社会,工厂出现了。需要要斧头的人直接找到工厂购买斧头(调用者 通过工厂生产被调用者)。
    进入共产主义社会,需要斧头的人不需要去找工厂,坐等社会提供斧头。

    依赖注入方法:

    • 1、设值注入:IoC容器使用成员变量的setter方法来注入被依赖的对象。
    • 2、构造注入:IoC容器使用构造器来注入被依赖对象。

    对比:
    设值注入的优点:
    1. 与传统的JavaBean的写法更相似,程序开发人员更容易理解、接受、通过setter方法设定依赖关系显得更加直观、自然。
    2.对于复杂的依赖关系如果采用构造注入,会导致构造器国语臃肿,难易阅读。Spring在创建Bean实例时,需要同时实例化起依赖的全部实例,因而导致性能下降。而使用设置注入,则能避免这些问题。
    3.尤其是在某些成员变量可选的情况下,多参数的构造器更加笨重。
    构造注入优点:
    1.构造注入可以再构造器中决定依赖关系的注入顺序,优先依赖的优先注入。例如,组件中其他依赖关系的注入,长长需要依赖于Datasource的注入。采用构造注入,可以再代码中清晰地决定注入顺序。
    2.对于依赖关系无需变化的Bean,构造注入更有用处。因为没有setter方法,所有的依赖关系全部在构造器内设定。因此,无需担心后续的代码对依赖关系产生破坏。
    3.依赖关系只能在构造器中设定,则只有组件的创建者才能改变组件的依赖关系。对组件的调用这而言,组件内部的依赖关系完全透明,更符合高内聚的原则。

    相关文章

      网友评论

        本文标题:Spring的核心机制:依赖注入

        本文链接:https://www.haomeiwen.com/subject/aozksktx.html