前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring温习-BeanFactory与FactoryBean

spring温习-BeanFactory与FactoryBean

作者头像
码农戏码
发布2021-03-23 11:20:46
2830
发布2021-03-23 11:20:46
举报
文章被收录于专栏:DDDDDD

不管是平时,还是面试,现在对于spring的讨论少了很多,不再像刚进入人们视野时,那么抢眼;spring现在就像空气一样,只要是java构建的项目,十之八九都是建立在spring之上,因此不可轻视

BeanFactory与FactoryBean,好久不见,一时也有些傻傻分不清楚,温习一下

如何区分

两者名字太接近了,经常被混淆,以结尾单词区分

BeanFactory以Factory结尾,表示它是一个工厂类(接口),整个spring可以说就是个大工厂,那它就是最基础的工厂

FactoryBean以Bean结尾,表示它是一个Bean,只是相对普通Bean,有些区别而已

BeanFactroy

在Spring中,BeanFactory是IOC容器的核心接口,定义了IOC的基本功能,包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖

从它的接口声明中,主要定义了getBean方法。getBean方法是IOC容器获取bean对象和引发依赖注入的起点。方法的功能是返回特定的名称的Bean

BeanFactory只是个接口,是spring中比较原始的Factory,但有着庞大的继承、实现体系,有众多的子接口、实现类,都是附加了某种功能的实现

FactoryBean

以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取

传统方式获取Bean,则需要在中提供大量的配置信息,配置方式的灵活性受到限制,通过FactoryBean创建Bean,相对灵活很多,可以对Bean进行修饰,更有类似像AOP的ProxyFactoryBean,对Bean进行proxy处理

总结

至此,简单的概念、作用区分已经完成。通过名字后缀可以快速区别两者

BeanFactory:只要用到spring,其实就是在使用BeanFactory;而FactroyBean则隐晦得多,需要扩展Bean时,则是FactoryBean,更多灵活使用再开一篇

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农戏码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何区分
  • BeanFactroy
  • FactoryBean
  • 总结
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档