开发者社区> 问答> 正文

[@aliyun][¥99] 我想知道SpringIOC容器底层到底做了哪些操作!!!

心意乱 2019-04-30 10:17:24 1089

SpringIOC_

问题是:

  1. 在我配置类中的数组顺序是按照我创建时候的顺序当我将数组拿出来时顺序就乱了。
  2. 输出地址值时会发现,两个对象不是同一个地址。
  3. 当我注入一个 Student 时,在使用方输出地址是没有发生改变的。
  4. 如何解决这个顺序问题

结论:

  1. 当我在容器中放入数组时(或者 List ,Set)SpringIOC 容器不会采用我们注入的对象自己会开辟一个新对象,这是集合中的顺序可能会发生改变。
容器
分享到
取消 提交回答
全部回答(1)
  • 小六码奴
    2019-07-17 23:34:37
    已采纳

    底层都是由N个对象构成的,各个对象之间通过相互合作,最终实现系统地业务逻辑
    image
    如果我们打开机械式手表的后盖,就会看到与上面类似的情形,各个齿轮分别带动时针、分针和秒针顺时针旋转,从而在表盘上产生正确的时间。图1中描述的就是这样的一个齿轮组,它拥有多个独立的齿轮,这些齿轮相互啮合在一起,协同工作,共同完成某项任务。我们可以看到,在这样的齿轮组中,如果有一个齿轮出了问题,就可能会影响到整个齿轮组的正常运转。

      齿轮组中齿轮之间的啮合关系,与软件系统中对象之间的耦合关系非常相似。对象之间的耦合关系是无法避免的,也是必要的,这是协同工作的基础。现在,伴随着工业级应用的规模越来越庞大,对象之间的依赖关系也越来越复杂,经常会出现对象之间的多重依赖性关系,因此,架构师和设计师对于系统的分析和设计,将面临更大的挑战。对象之间耦合度过高的系统,必然会出现牵一发而动全身的情形。
    image
    耦合关系不仅会出现在对象与对象之间,也会出现在软件系统的各模块之间,以及软件系统和硬件系统之间。如何降低系统之间、模块之间和对象之间的耦合度,是软件工程永远追求的目标之一。为了解决对象之间的耦合度过高的问题,软件专家Michael Mattson 1996年提出了IOC理论,用来实现对象之间的“解耦”,目前这个理论已经被成功地应用到实践当中。

    0 0
+ 订阅

云原生时代,是开发者最好的时代

推荐文章
相似问题
推荐课程