首页 > 编程知识 正文

spring的依赖注入和控制反转是完全不同的两个概念,spring的控制反转和依赖注入简述

时间:2023-05-04 20:49:48 阅读:181605 作者:3262

Spring是一个巨大的框架,可以封装许多成熟的功能,使我们不需要多次制造车轮; 然后,使用IOC进行依赖管理。 利用JAVA的反射机制,将实例的初始化交给Spring。 Spring可以通过配置文件管理实例,因此不需要自己初始化实例。

“那你可以直接使用工厂模型。 在工厂模式下也可以管理实例的初始化。 为什么必须用Spring呢? ’这是因为IOC是通过反射机制实现的。 当我们的需求变动时,工厂模式需要相应地变化。 但是,IOC的反射机制会动态生成对象,因此可以不重新编译代码。

一.什么是依赖注入和控制反转? 控件逆转:即inversionofcontrol (inversionofcontrol )将传统由程序代码直接操作的对象的调用权传递给容器,通过容器实现对象组件的组装和管理。 “控制逆转”概念是组件对象控制权的转移,它从程序代码本身转移到了外部容器。

依赖注入:基本原则是,APP组件不应该负责查找资源或其他依赖的协作对象。 组成对象的工作由IoC容器负责,“查找资源”逻辑应该从APP应用组件的代码中提取出来,并交给IoC容器。

“从属注入”(Dependency Injection )和“控制反转”(Inversion of Control )是同一概念。

具体地说,某个角色(Java实例、调用方)是另一个角色)、另一个Java实例、调用方)需要协助时,在传统编程过程中,通常调用方在调用方的实例但是,在Spring中,调用方不再执行创建调用方的操作,因此创建调用方实例(称为控制逆转)的操作通常由Spring容器完成并注入到调用方中,因此与依赖注入一起使用

2 .无论是依赖于实施例的描述还是控制反转,Spring都展示了以动态灵活的方式管理各种各样的对象。 对象和对象之间的具体实现相互透明。 在理解依赖注入之前,我们先来看看以下问题在各种社会形态下是如何解决的。 一个人(Java实例,调用方)需要斧头);Java实例,调用方)。

)原始社会中,几乎没有社会分工。 需要斧头的人(调用者)只能自己磨斧头)。 对应的方案是,Java程序中的调用方自己创建被调用方。

在这种情况下,要创建调用该Java实例的Java实例,必须显示在调用它的代码中调用的Java类。 无法实现两者之间的松散耦合。

)2)进入工业社会,出现工厂。 斧头不是由俏皮的猫完成的,而是由工厂生产的。 届时,需要斧头的人(呼叫方)会找到工厂购买斧头,不用在意斧头的制造过程。 支持Java程序的简单工厂设计模式。

在这种情况下,调用者不需要在意被调用者具体实现流程,而只需找到符合某个标准(接口)的实例即可使用。 此时调用的代码是为接口编程的,可以断开调用者和被调用者之间的耦合。 这也是工厂模式被大量使用的原因。 但是,呼叫方需要自己配置工厂,呼叫方需要与特定的工厂结合。

) 3进入“按需分配”社会,需要斧头的人不需要找到工厂,坐在家里下达简单的指令需要斧头。 斧头自然地出现在他面前。 应对Spring的依赖注入。

此时,调用方不需要自己找工厂,当程序运行需要被调用方时,系统自动提供被调用方实例。 实际上,调用方和被调用方都在Spring的管理之下,两者之间的依赖关系由Spring提供。

3 .总结:依赖于标注是指在程序运行时,如果需要调用另一个对象进行协作,则不需要在代码中创建调用方,而是依赖于外部标注。 Spring依赖注入对调用方和被调用方几乎没有任何要求,完全支持POJO之间依赖关系的管理。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。