IOC控制反转
IoC叫控制反转,英文Inversion of Control,控制反转就是把 由程序代码直接操作的对象第调用权交给容器处理,通过容器实现对象组件的装配和管理。说白了就是 对组件对象控制权的转移,从程序转移到外部容器,由容器创建对象并管理对象间依赖关系。
控制反转的技术大大促进了代码间的松耦合。一个对象依赖的其他对象会通过被动的方式传递进来,而不是自己去创建或者查找依赖对象,而是容器在对象初始化时不等对象请求就主动将依赖传递给他了,如此使得层与层之间脱耦,增加运行效率,便于维护。
如上图中,Spring不仅可以实例化对象,还可以为对象属性赋值,这边是控制反转。
DI依赖注入
依赖:所有的java应用都是由一些相互协作的对象构成的,Spring把这种互相协作的关系叫做依赖。如:A组件调用了B组件的方法,则称A组件依赖于B组件。
举例如下:
任何一个应用都是由若干个类组成,他们相互协作来完成特定的业务逻辑,通常,每个对象负责管理与自己相互协作的对象的引用,如此将会导致代码高度耦合,并难以测试。