功能不同:
BeanFactory是Spring的最基础的IOC容器,用于管理Bean对象的创建、销毁和依赖注入等操作。
FactoryBean是一个可以创建复杂对象的工厂Bean,其主要作用是在创建Bean时,对Bean进行加工和定制,最终返回一个新的对象。它比BeanFactory更加灵活,可以创建出更加复杂的Bean对象。
1)BeanFactory 是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范,顶层接口。
2)FactoryBean 也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给Bean的实现加上了一个简单的工厂模式和装饰模式 ,我们可以在getObject()方法中灵活配置.
区别:FactoryBean是个Bean.在Spring中,所有的Bean都是由BeanFactory(也就是IOC容器)来进行管理的。但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和修饰器模式类似 .