在spring框架中,什么是控制反转,什么是依赖注入,spring的控制反转和依赖注入简述

  在spring框架中,什么是控制反转,什么是依赖注入,spring的控制反转和依赖注入简述

  

目录

IOC控制反转了依赖注入和新对象之间的差异。spring的IOC容器中的新对象依赖注入比新对象好在哪里?

 

  

IOC控制反转依赖注入和new对象的区别

spring默认为singleton模式,依赖注入其中的操作的一切都是对象。

 

  00-1010在单个实例中,如果注入的效果是实例化类头部的对象,那么这一次无论使用与否,对象都会贯穿整个类。该类对象将不被回收,并且由于引用状态,该实例化的对象将不被回收。如果要使用多实例对象,最好使用new来创建对象,而不是依赖注入,即使依赖注入有多实例模式,也不推荐。

  依赖注入:的意思是,当一个程序需要调用另一个对象进行协助时,不需要在代码中创建被调用者,而是依靠外部注入。Spring的依赖注入对调用者和被调用者几乎没有要求,完全支持pojo之间的依赖管理。

  00-1010如果调用者使用了被调用的对象,那么依赖对象将从spring容器中取出,并注入到被使用的类中。如果没有,就放回spring容器的对象池,这样既节省了内存,又降低了代码的耦合度。在面向接口的编程中,依赖注入只需要找到标准的接口注入就可以实现调用方和被调用方的解耦。对象的调用关系由spring管理。

  进入实习后,对之前不太懂的依赖注入很好奇。我也注意在实际工作中使用。我了解多了之后,查阅了文献,总结了这个结论。如有错误,请指出。

  00-1010我个人认为你们都没有把春季ioc的精髓解释到位。大部分都是模糊不清是什么,抽象的表达或者模糊的概念。

  ioc的理念核心是,资源不是由使用资源的双方来管理,而是由不使用资源的第三方来管理,这样可以带来很多好处。

  第一,资源的集中管理,实现资源的可配置和易管理。其次,它降低了双方用户对资源的依赖程度,也就是我们所说的耦合度。也就是说,甲方不需要直接依赖乙方来达到某种目的,只需要将目的告诉第三方即可。比如甲方需要一双袜子,乙方卖了一双袜子,就需要把袜子卖出去,不需要直接找卖家完成袜子的销售。它只需要找到第三方,告诉别人我要卖一双袜子。这样很好,交易双方都不需要直接去找卖家进行交易活动,相当于在程序内部开放了接口,卖家由第三方作为参数传入。甲乙双方相互独立,只有在进行交易活动时,甲乙双方才有联系。或者反之亦然,达拉斯到礼堂这有什么好处?甲乙双方在对方不真正存在的情况下可以独立存在,不交易的时候保证没有联系。他们想交易的时候很容易联系上。甲乙双方在交易活动中无需见面,避免了因双方互不信任而导致交易失败的问题。因为交易是第三方联系的,而且甲乙双方都认为第三方可靠。那么交易可以非常可靠和灵活。

  这是国际奥委会的核心理念。生活中例子比比皆是。支付宝是整个淘宝体系中一个巨大的ioc容器,交易方之外的第三方可以依靠可以灵活变更交易方的资源管理中心来提供可靠性。另外,人事代理也是用人单位和个人之外的第三方。嗯,就是这样。希望对题主有帮助。

  ==============update==============

  在上面的描述中,诞生了依赖注入和控制反转两个专业术语。所谓依赖注入,就是甲方有一个开放的接口,在需要的时候,可以谈论乙方传输(注入)的所谓控制反转。甲乙双方互不依赖,交易活动不依赖任何一方。整个活动我

  人之恶在于为人师表,不明真相,说话小心翼翼。

  下面是我个人看了上面文章结合评论中的问题进行的一次回复:

  在问:.有一个小问题,如果甲方想要袜子,他还必须依靠卖袜子的人。这两者之间是有联系的,也就是说,甲方也依赖于乙方,因为如果乙方不卖袜子,甲方就买不到袜子,自然就无法继续下去。这怎么解决?

  答:已经脱钩。通常使用new A()时,需要导入包地址,这个包地址已经死了。将来,这个引用将指向那个类。改起来很麻烦。使用交流电。get bean(“A”)不引入包,也就是所谓的独立(也就是和那种A无关)。它只从容器中寻找名为A的类。至于你给我的,你看。举个例子:比如很普通的dao类。起初,你对新的很满意。万一以后需求变化很大,数据库mysql换成db2,这个dao文件基本上要重写。如果这个类已经打包编译成了类文件,无法更改怎么办?或者实例化一个公共接口。原来的实现类A不好,要换成B作为他的实现类,重写他的方法。你得找出项目中所有的实例化,然后改成B(如果你用了很多大项目,可以一个一个改,漏了就是大bug)。你和国际奥委会之间没有这个问题。只需在配置文件中将名为A的bean直接指向您新编写的类。所以他所依赖的乙方不是卖袜子的,而是中介。

  以上个人经验,希望能给大家一个参考,也希望大家能支持盛行的IT。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • spring编程式事务处理,spring编程事务
  • spring编程式事务处理,spring编程事务,详解Spring学习之编程式事务管理
  • spring的核心功能模块有几个,列举一些重要的spring模块
  • spring的核心功能模块有几个,列举一些重要的spring模块,七个Spring核心模块详解
  • spring注解和springmvc的注解,SpringMVC常用注解
  • spring注解和springmvc的注解,SpringMVC常用注解,详解springmvc常用5种注解
  • spring实现ioc的四种方法,spring的ioc的三种实现方式
  • spring实现ioc的四种方法,spring的ioc的三种实现方式,简单实现Spring的IOC原理详解
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况
  • spring事务失效问题分析及解决方案怎么做,spring 事务失效情况,Spring事务失效问题分析及解决方案
  • spring5.0新特性,spring4新特性
  • spring5.0新特性,spring4新特性,spring5新特性全面介绍
  • spring ioc以及aop原理,springmvc aop原理
  • spring ioc以及aop原理,springmvc aop原理,深入浅析Spring 的aop实现原理
  • Spring cloud网关,spring cloud zuul作用
  • 留言与评论(共有 条评论)
       
    验证码: