IOC:Inversion of control(控制反转的英文缩写),依赖对象的获得被反转了,一般是通过DI(dependency injection 依赖注入)来实现的,可以大大降低类之间的耦合度。
IOC&DI是Spring等框架的核心,或者说是基石,如果没有IOC容器&DI就没有Spring等框架。
BeanFactory和FactoryBean
beanFactory:The root interface for accessing a Spring bean container.
作为进入Spring的Bean容器的根接口,定义了Bean容器的基本功能,函数如图
其中&符号是用来取Factory的,如果对Factory产生的bean取&,则会返回产生这个bean的工厂bean。
注意区分FactoryBean和BeanFactory:
FactoryBean是生产者,生产bean
BeanFactory是一个工厂,负责bean信息的获取和管理,FactoryBean也是bean,所以也是BeanFactory管。
二者关系就像工人和工厂的关系,前者作为工人生产产品,本身也属于工厂管,而产品要出厂不是生产出来就行,还要贴标,出厂等操作,这些就是后者的工作。前面所说的&符号取的就是生产工人BeanFactory
IOC容器:通常的IOC容器由3部分组成:
-
Resource资源,用来获取Bean的配置信息
-
BeanFactory工厂,用来管理Bean的生产和配置
-
BeanDefinitionReader阅读器,用来阅读Bean的配置信息和绑定BeanFactory工厂