ioc

278 阅读1分钟

在一开始学习 Spring 的时候,我们就接触了IOC,作为 Spring 第一个最核心的概念,我们在解读它源码之前一定需要对其有深入的认识,本篇为【Spring源码分析】系列博客的第一篇,主要介绍IOC基本概念和各个组件。

IOC理论

IOC全称为 ==Inversion of Control==,翻译为“控制反转”,它还有一个别名为DI(Dependency Injection),即依赖注入。

如何理解“控制反转”好呢? 理解好它的关键在于我们需要回答如下四个问题:

1、谁控制谁 2. 控制什么

  1. 为何是反转
  2. 哪些方面反转了

在回答这四个问题之前,我们先看IOC的定义:

所谓IOC,就是由Spring IOC 容器来负责对象的生命周期和对象之间的关系

上面这句话是整个IOC的理论核心。如何理解这句话呢? 我们引用一个例子来阐述(看完该例子,上面四个问题也不再是问题了)。

已找女朋友为例。一般情况下我们是如何找女朋友的呢? 首先我们根据自己的需求(漂亮、身材好、性格好)找一个妹子,然后到处打听她的兴趣爱好、微信、电话号码,然后各种投其所好,最后追到手,如下:

/**
 * 年轻小伙子
 */
public class YoungMan {
    private BeautifulGirl beautifulGirl;

    YoungMan(){

    }

    public void setBeautifulGirl(BeautifulGirl beautifulGirl) {
        this.beautifulGirl = beautifulGirl;
    }

    public static void main(String[] args) {
        YoungMan you = new YoungMan();
        BeautifulGirl beautifulGirl = new BeautifulGirl("你的各种条件");
        beautifulGirl.setXxxx("各种投其所好");
        
        //然后你有女票了
        you.setBeautifulGirl(beautifulGirl);
    }
}

这就是我们做事的方式, 如果我们需要某个对象,一般都是采用这种直接创建的方式( new BeautifulGirl())


啊啊

  • 啊啊啊

link