Spring BeanFactory与FactoryBean的区别

BeanFactory
BeanFactory是一个Bean的工厂类,用来管理spring容器中注入的bean,有了BeanFactory的实例我们就可以获取注册到容器中的bean了,Bean Factory中具体提供的方法如下:
在这里插入图片描述BeanFactory中比较常用的子类有ListableBeanFactory;
另外,我们关心和使用比较多的时Bean Factory的子类时ClassPathXmlApplicationContext,这是ApplicationContext接口的一个子类,且ApplicationContext又是ListableBeanFactory的子类;该子类主要时从xml的配置文件中获取bean并管理他们;
BeanFactory的职责具体的说指:实例化、定位、配置应用程序中的对象以即建议这些对象之间的依赖;

FactoryBean
FactoryBean 以Bean结尾,表示它时一个Bean;不同于普通的Bean的点在于:它实现了一个Factory Bean接口的Bean;该接口中的具体方法如下:
在这里插入图片描述可以看到,Factory Bean非常简单,三个方法的意义非常明确,getObject希望你返回需要注册到spring容器中去的bean的实体,getObjectType希望你返回你注册的这个Object的具体类型,isSingleton方法希望你返回这个bean是不是单例的,如果是,那么sp日你哥容器全局将只保持这一个实例对象,否则每次个体Bean都将渠道一个新的实例对象;
Factory Bean的功能貌似更像是一种代理,有一种场景是,我们使用一个通用的类来在xml文件中注册Bean,我们希望通过该通用bean产生一个我们希望的bean,而这个需求FactoryBean就可以半岛,只需要拦截你需要待处理的bean,然后转换成你希望的bean再注册,一个应用场景就是Rpc从服务器端的bean注册,以及Rpc客户端的服务调用,都可以通过一个第三方bean来产生我们真正需要的bean;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值