Spring中BeanFactory与FactoryBean到底有什么区别?

本文探讨了Spring中的BeanFactory和FactoryBean的区别。BeanFactory是Spring容器的顶级接口,用于管理和获取Bean。FactoryBean则是一个特殊的Bean,它可以作为工厂生成其他Bean的实例,常用于AOP代理对象的创建。在使用FactoryBean时,通过名称获取的是FactoryBean生产的对象,而通过'&'前缀获取FactoryBean本身。理解两者差异对于深入理解Spring Ioc容器至关重要。
摘要由CSDN通过智能技术生成

一、BeanFactory

BeanFactory是一个接口,它是Spring中工厂的顶层规范,是SpringIoc容器的核心接口,它定义了getBean()、containsBean()等管理Bean的通用方法。Spring的容器都是它的具体实现如:

DefaultListableBeanFactory

XmlBeanFactory

ApplicationContext

这些实现类又从不同的维度分别有不同的扩展。

1.1、源码

public interface BeanFactory {

  //对FactoryBean的转义定义,因为如果使用bean的名字检索FactoryBean得到的对象是工厂生成的对象,
  //如果需要得到工厂本身,需要转义
  String FACTORY_BEAN_PREFIX = "&";

  //根据bean的名字,获取在IOC容器中得到bean实例
  Object getBean(String name) throws BeansException;

  //根据bean的名字和Class类型来得到bean实例,增加了类型安全验证机制。
  <T> T getBean(String name, @Nullable Class<T> requiredType) throws BeansException;

  Object getBean(String name, Object... args) throws BeansException;

  <T> T getBean(Class<T> requiredType) throws BeansException;

  <T> T getBean(Class<T> requiredType, Object...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值