FactoryBean和BeanFactory有什么区别?
摘自网络:
Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean,这两种Bean都被容器管理,但工厂Bean跟普通Bean不同。
BeanFactory:需要知道对象的一系列属性(通过XML配置),然后再构造对象,并对对象进行管理,如对象的生命周期,是否单例,以及复合对象(对象有其他对象的引用)的组装(自动装配),对象初始化的一些准备工作,属性注入等等。可以说BeanFactory更像一个公司。
FactoryBean:这个对象更像一个工厂,是专门生产某一类对象,几乎没有管理功能,只是单一的构造对象而已。
注意:
FactoryBean跟普通Bean不同,其返回的对象不是指定类的一个实例,而是该FactoryBean的getObject方法
所返回的对象。
应用场景
FactoryBean 通常是用来创建比较复杂的bean,一般的bean 直接用xml配置即可,但如果一个bean的创建过程中涉及到很多其他的bean 和复杂的逻辑
,用xml配置比较困难,这时可以考虑用FactoryBean。
FactoryBean接口:
pu