从上面图可以看出 IOC也叫做控制反转,控制反转这种思路是为了解决依赖倒置这种问题,举个例子 制造汽车,new Car() 车里面要有车身,车身里面有车底盘,底盘包含轮胎,要new Car()需要弄好多东西啊,甚至我想改下轮胎代码,车上的代码还得改,这样的意思就是高层依赖了低层,不想让这种事情发展,就想着要依赖倒置,要让地层是依赖高层的,我车想要什么样,就可以直接通过改轮胎就行,就是控制反转的思想,具体方式就是把轮胎这个类进行注入。 (其实虽然反转了,其实我理解是可以谁都不依赖谁 互相都没有强依赖)
IOC容器就像是一个工厂,各个bean都统一管理,new Car 看到需要车身,然后看到需要轮胎,就从低层一层层new 出来 形成一个Car。
总之 控制反转IOC 甲乙双方不相互依赖,交易活动的进行不依赖于甲乙任何一方,整个活动的进行由第三容器方负责管理。
依赖注入就是 甲方开放接口,在它需要的时候,能够讲乙方传递进来(注入)。嗯 就这么简单。
参考https://www.zhihu.com/question/23277575/answer/169698662
//源码解析。这个作者讲的挺好 有时间需要多看下 //todo
https://javadoop.com/post/spring-ioc