当前位置: 首页 > 图灵资讯 > java面试题> BeanFactory 和FactoryBean有什么区别?

BeanFactory 和FactoryBean有什么区别?

来源:图灵教育
时间:2024-03-07 13:05:43
 
  • beanFactorySpring框架的核心接口之一,用于管理和获取Bean对象亦陈为bean的容器。使用了简单工厂模式,提供getBean方法用来获取bean。
  • FactoryBean是一个bean,但是它是一个特殊的bean。

它是一个接口,他必须被一个bean去实现。

FactoryBean接口定义了两个方法:getObject()getObjectType()

getObjectType()方法用于返回创建的Bean对象的类型。

getObject()方法用于返回创建的Bean对象,最终该Bean对象会进行注入,Mybatis集成Spring时的那个SqlSessionFactoryBean就实现了FactoryBean, 最终通过getObject()将SqlSessionFactory注入到Ioc容器中。

所以FactoryBean不是一个普通的Bean,它会表现出工厂模式的样子,可以自定义创建Bean对象的逻辑,可以在创建Bean对象之前进行一些额外的处理。

如果要获得FactoryBean类本身而非getObject()返回的Bean可以通过在BeanName前加“&”进行获取。

 

所以他们直接没有什么关系, 实在要扯上点关系那就是BeanFactory管理了FactoryBean