BeanFactory是spring 的核心类
BeanFactory是IOC容器的核心接口,职责包括:实例化,定位,配置应用程序中的兑换及建立这些对象间的依赖。
ApplicationContext是contex包的核心,由BeanFactory接口派生,更加面向框架的方式增强BeanFactory的功能。
区别
BeanFactory采用延迟加载(Lazy-init)形式注入Bean的,即使用到某个类的时候才加载实例化
ApplicationContext是在容器启动的时候就创建所有的Bean
FactoryBean 是一个工厂Bean
以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean<T>接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取。
BeanFactory和FactoryBean的区别
BeanFactory和FactoryBean其实没有什么比较性的,只是两者的名称特别接近,所以有时候会拿出来比较一番,BeanFactory是提供了OC容器最基本的形式,给具体的IOC容器的实现提供了规范,FactoryBean可以说为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,我们可以在getObject()方法中灵活配置。