7、什么是FactoryBean

(1)FactoryBean是什么?
FactoryBean是Spring所提供的一种较灵活的创建Bean的方式,可以通过实现FactoryBean接口中的getObject()方法来返回一个对象,这个对象就是最终的Bean对象。

(2)FactoryBean接口中的方法
Ⅰ、Object getObject():返回的是Bean对象
Ⅱ、boolean isSingleton():返回的是是否单例Bean对象
Ⅲ、Class getObjectType():返回的是Bean对象的类型

@Component("lyc")
public class LycFactoryBean implements FactoryBean {
    
    @Override
    //Bean对象
    public Object getObject() throws Exception {
        return new User();
    }

    @Override
    //Bean对象的类型
    public Class<?> getObjectType() {
        return User.class;
    }

    @Override
    //所定义的Bean是单例还是原型
    public boolean isSingleton() {
        return true;
    }
}

(3)FactoryBean的特殊点
上述代码,实际上对应了两个Bean对象:
Ⅰ、beanName为“lyc”,bean对象为getObject方法所返回的User对象。
Ⅱ、beanName为“&lyc”,bean对象为LycFactoryBean类的实例对象。

(4)混淆
FactoryBean对象本身也是一个Bean,同时它相当于一个小型工厂,可以生产出另外的Bean。
BeanFactory是一个Spring容器,是一个大型工厂,它可以生产出各种各样的Bean。

FactoryBean机制被广泛的应用在Spring内部和Spring与第三方框架或组件的整合过程中。

posted @ 2022-04-13 10:15  YonchanLew  阅读(152)  评论(0)    收藏  举报