BeanFactory和FactoryBean的区别?
BeanFactory和FactoryBean都可以用来创建对象,只不过创建的流程和方式不同。
当使用BeanFactory的时候,必须要严格的遵守bean的生命周期,经过一系列繁杂的步骤之后才可以创建出单例对象,是流水线式的创建过程。
而FactoryBean是用户可以自定义bean对象的创建流程,不需要按照bean的生命周期来创建,在此接口中包含了三个方法,
isSingleton:判断是否是单列对象。
getObjectType:获取对象的类型。
getObject:在此方法中可以自己创建对象,使用new的方式或者使用代理的方式都可以,用户可以按照自己的需要去随意的创建对象,在很多框架继承的时候都会实现FactoryBean接口,比如Feign.