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与第三方框架或组件的整合过程中。