控制反转怎么实现?
什么是控制反转?
控制反转(IoC,Inversion of Control),很明显,意思是将对组件对象控制权进行转移,从代码本身转移到外部的容器。通过容器实现对象组件的装配和管理。
什么是依赖注入?
依赖注入(DI,Dependency Injection),是IoC的一种实现方式。组件之间依赖关系是由容器在运行期决定的,即由容器动态的将某个依赖注入到组件中。
Spring框架是如何实现控制反转的?
我们每次使用Spring框架时,都是需要配置xml文件的,在这个文件中配置了Bean的id和class,通过Bean的class引用反射机制去创建实例。所以说,Spring框架通过反射代替我们创建好了实例并替我们维护他们。
比如A类需要引用B类,Spring框架就会通过xml把B实例的引用传给A的成员变量。
使用的是@component注解实现bean的注入。
反射机制
反射机制是指程序在运行时能够获取自身的信息。在Java中,只要给定类的名字,那么就可以通过反射机制来获取类的所有信息。
参考文章:IOC与DI的理解