BeanFactory与FactoryBean的区别总结
其实这两个之间没有联系,只是长得像,所以经常拿来比较。
BeanFactory:是一个原始的spring工厂,也是一个IOC容器或者叫对象工厂,主要负责生产和管理Bean。他是一个接口,没有具体的实现,也不支持许多spring插件,只是为其他具体的IOC容器实现提供了最基本的规范,所以在这个接口基础上派生了许多容器的具体实现,如ApplicationContext。
FactoryBean是一个能生产或者修饰生成对象的工厂Bean,能在BeanFactory中被管理。他是一个特殊的Bean,当使用容器中的factory bean时,该容器不会返回factoryBean对象本身,而是返回其生成的对象,即getBean()获取到是FactoryBean.getObject()方法返回的对象。