一篇告诉你什么是春天

  <>节   

  <代码>阅读全文大概需要7分钟

  

                 

  
  

  国际奥委会<代码> 需要> <代码> DI 和   DI <代码> 多数是同时出现人们眼前的。

  

  国际奥委会<代码> 是   <代码>控制反转> 为了解决对象之间的耦合度过高的问题强,软件专家迈克尔?马特森提出了国际奥委会理论,用来实现对象之间的   <>强解耦

  

2004年,马丁探讨了同一个问题,既然国际奥委会是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他得出了答案:“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理变为了由国际奥委会容器主动注入。于是,他给“控制反转”取了一个更合适的名字叫做“依赖注入(依赖注入)”。他的这个答案,实际上给出了实现国际奥委会的方法:注入。所谓依赖注入,就是由国际奥委会容器在运行期间,动态地将某种依赖关系注入到对象之中。

  

依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指   <强>通过引入奥委会容器,利用依赖关系注入的方式,实现对象之间的解耦。

  
  

背景介绍完了,讲讲我的理解

  

国际奥委会就是   <强>依赖倒置原则的一种   <强>设计思路强,就   <强>是将原本在程序中自己手动创建对象的控制权,交由弹簧框架来管理 .Spring框架负责控制对象的   <强>生命周期和   <强>对象之间的关系 .IoC在其他语言中也有应用,并非Spirng特有。   <强>奥委会容器实际上就是个地图(键值),里面存的是各种对象(在xml里配置的豆节点| |库,服务,控制器,组件)。

  

  <强> Spring IOC容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。奥委会容器负责创建对象,将对象连接在一起,配置这些对象,并从创建中处理这些对象的整个生命周期,直到它们被完全销毁。

  

在实际项目中一个服务类如果有几百甚至上千个类作为它的底层,我们需要实例化这个服务,你可能要每次都要搞清这个服务所有底层类的构造函数,这可能会把人逼疯。如果利用国际奥委会的话,你只需要配置好,然后在需要的地方引用就行了,这大大增加了项目的可维护性且降低了开发难度。

  

推荐   https://www.zhihu.com/question/23277575/answer/169698662

  

  <强>奥委会容器的初始化过程可以分为三步:

  
      <李>   <>部分资源定位(Bean的定义文件定位),   <李>   <>节将资源定位好的资源载入到BeanDefinition,   <李>   <>节将BeanDefiniton注册到容器中
  一篇告诉你什么是春”>
  <p>奥委会源码:</p>
  https://javadoop.com/post/spring-ioc <p> </p>
  <h4>
  
  </h4>
  <h5>
  
  </h5>
  <p> AOP(面向方面编程面向切面编程),在程序开发中主要用来解决一些系统层面上的问题,比如
  <强>日志收集,事务管理,权限,缓存,对象池管理</强>等。</p>
  <p> AOP可以说是OOP(面向对象编程,面向对象编程)的补充和完善.OOP引入封装,继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的对象的核心功能毫无关系对于其他类型的代码,如
  <>强安全性,异常处理和透明的持续性</>强也都是如此,这种散布在各处的无关的代码被称为横切(横切),在OOP设计中,它导致了
  <强>大量代码的重复,而不利于各个模块的重用</强>。</p>
  <p> AOP技术恰恰相反,它利用一种称为“横切“的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为“Aspect一篇告诉你什么是春天