zoukankan      html  css  js  c++  java
  • spring IOC的原理

    (一)概念

      IOC (Inversion of Controller), 即控制反转, 是一种设计思想,在 java 开发中意味着把设计好的对象交给容器控制,而不是在对象内部直接控制(由 Spring IOC容器来管理组件对象的生命周期, 负责组件对象的创建和组件对象之间的依赖关系,这样可以大大降低程序各组件之间的耦合关系,符合软件工程中低耦合高内聚的理念)。

    (二)创建对象和管理对象

      初始化Spring中的Bean工厂,Spring中的Bean工厂会基于Bean对象描述,创建Bean的实例,并有选择性的对实例对象进行管理。
      Spring中有两个核心的Map对象,一个用于存储bean的配置信息(xml,注解),一个用于存储bean的实例信息;通过(xml,annotation的方法)描述对象;通过这两个map对象来对bean对象进行管理;通过依赖注入来协同资源。

    (三)依赖注入的方式

      主要有三种方式:构造函数注入、setter 方法注入与接口注入。
      构造函数注入:通过类名反射得到构造函数,通过构造函数注入数据,对象构造完成后便进入就绪状态,可以马上使用,但依赖对象较多时参数列表会较长,对相通类型的参数进行处理可能会比较困难。
      setter 方法注入:通过 setter 方法处理多个对象时会比构造函数好,只是不能马上进入就绪状态。
      接口注入:强制注入对象不必要的接口,具有较强的侵入性,性能也不见得比上两种好。

  • 相关阅读:
    [TJOI2013]循环格
    [CQOI2017]小Q的表格
    【51nod 1514】 美妙的序列
    【bzoj3456】 城市规划
    [SHOI2010]最小生成树
    CF438E The Child and Binary Tree
    bzoj 4712: 洪水
    POJ-3069 Saruman's Army---区间选点
    POJ-3617 Best Cow Line---字符串贪心
    HDU-1850 Being a Good Boy in Spring Festival---尼姆博奕的运用
  • 原文地址:https://www.cnblogs.com/xmm2017/p/13943875.html
Copyright © 2011-2022 走看看