spring 中 BeanFactory 和 FactoryBean 的区别
spring 中 BeanFactory 和 FactoryBean 的区别
- 这两种方式都是创建spring 的方式
FactoryBean
public class DemoFactoryBean implements FactoryBean<Model> {
@Override
public Model getObject() throws Exception {
return new Model();
}
@Override
public Class<?> getObjectType() {
return Model.class;
}
}
- 是用这个通过getObject方法来获取bean 而这个bean 什么时候被创建,由用户自己实现,更加的灵活。
BeanFactory
- beanFactory 是所有 spring工厂类都会去实现的一个接口,如DefaultListableBeanFactory
- 基于BeanFactory 生产出的bean 由spring 控制其创建/销毁等。
区别
- FactoryBean 是一个可以生产bean 的工厂类,可以理解为spring 是一个大工厂,而bean 是spring里工厂生产出来的各种组件,而FactoryBean 也可以生产各种各样的bean 并且可以控制bean的生产。
- FactoryBean生产的bean 由程序员编写逻辑而成。而BeanFactory 由spring 控制。