SpringCore
依赖注入和控制反转问题紧密耦合的代码难以测试,难以复用,难以理解,但是耦合是必须的
解决通过DI,对象的依赖关系将由系统中负责协调各对象的第三方插件在创建对象时设定。对象无需自行创建或管理他们的依赖关系(IOC和DI是同一个概念的不同角度描述)
来自IoC 之 2.1 IoC基础 ——跟我学Spring3
IOCIOC (Inversion of Control),即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IOC是有专门一个容器来创建这些对象,即由IOC容器来控制对象的创建;谁控制谁?当然是IOC容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括文件等)。
为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查 ...