关于FactoryBean 和BeanFactory
在Spring 中,有两个很容易混淆的类:BeanFactory 和FactoryBean。
BeanFactory:Bean 工厂,是一个工厂(Factory),我们Spring IOC 容器的最顶层接口就是这个BeanFactory,它的作用是管理Bean,即实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。
FactoryBean:工厂Bean,是一个Bean,作用是产生其他bean 实例。通常情况下,这种Bean 没有什么特别的要求,仅需要提供一个工厂方法,该方法用来返回其他Bean 实例。通常情况下,Bean 无须自己实现工厂模式,Spring 容器担任工厂角色;但少数情况下,容器中的Bean 本身就是工厂,其作用是产生其它Bean 实例。
当用户使用容器本身时,可以使用转义字符”&”来得到FactoryBean 本身,以区别通过FactoryBean产生的实例对象和FactoryBean 对象本身。在BeanFactory 中通过如下代码定义了该转义字符:String FACTORY_BEAN_PREFIX = "&";
如果myJndiObject 是一个FactoryBean,则使用&myJndiObject 得到的是myJndiObject 对象,而不是myJndiObject 产生出来的对象。
关于FactoryBean 和BeanFactory相关推荐
- java中factory_Java后台面试--Spring中FactoryBean与BeanFactory的使用及区别
以前刚转Java的时候去面试被问到过Spring中FactoryBean与BeanFactory的使用及区别,由于之前没有重视这两个的区别,只是在配置文件里面加bean结点并通过注解的形式调用,所以被 ...
- IOC 容器中那些鲜为人知的细节(关于 FactoryBean 和 BeanFactory)
1.博客内容均出自于咕泡学院架构师第三期 2.架构师系列内容:架构师学习笔记(持续更新) 在 Spring 中,有两个很容易混淆的类:BeanFactory 和 FactoryBean. BeanFa ...
- factorybean与beanfactory
前面提到了beanfactory会根据beandefinition来创建容器中的bean对象,beanfactory是一个工厂,而factorybean是一个bean,但是它本身也可以生产出另外的be ...
- 被问懵了,BeanFactory和FactoryBean接口的区别到底是什么?
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达 今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多 作者:ゞ .邓澎波 cnbl ...
- Spring中 BeanFactory 与 FactoryBean 的区别
作者:叁滴水 blog.csdn.net/qq_30285985/article/details/115433099 文章目录 前言 为什么会有FactoryBean? 通过源码深入学习Factory ...
- [spring源码学习]六、IOC源码-BeanFactory和factory-bean
https://www.cnblogs.com/jyyzzjl/p/5459335.html 一.代码实例 在我们分析spring的IOC源码的时候,发现除了配置标准的bean,并且通过getBean ...
- Spring bean 之 FactoryBean
原文地址:http://www.carlzone.cn/spring... Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.Spring Fac ...
- ApplicationContext和BeanFactory
BeanFactory - BeanFactory 就像一个包含 bean 集合的工厂类.它会在客户端 要求时实例化 bean. ApplicationContext - ApplicationCon ...
- Spring拓展接口之FactoryBean
1.是什么 FactoryBean的源码比较简单,大家可以细读下其注释. /*** 实现此接口的bean不能用作普通bean.此bean暴露的对象是通过getObject()创建的对象,而不是它自身* ...
最新文章
- 贝塞尔曲线与CAShapeLayer的关系以及Stroke动画
- 第三次学JAVA再学不好就吃翔(part39)--package关键字
- iOS SQLite函数总结
- MessageFormat 格式化String
- 使用inetaddress测试目标可达性_纯java手写打造方法级白盒测试框架
- 详解nginx 代理多个服务器(多个server方式)
- 安卓Intent的Action中的常值变量:窗口action常量(android.intent.action.+xxx),广播action常量(android.intent.action.+xxx)
- 【完美】mac word2016 安装 endnote x9
- 小强地狱(Bug Hell)——优先级和缺陷修改的平衡
- 大时代背景下商业地产的数十年转型发展之路
- vue---图像上传/裁剪/预览/删除/查询
- SVG 研究之路 - 再談 defs
- eNSP——通过Stelnet登录系统网络配置实验
- 考拉nbsp;PASCALnbsp;解题报告
- 快速爬取链家网的房源信息
- netscape.exe_评论-Netscape 6.1
- block unicast机制
- 不会吧,不会吧,全网最细汉诺塔讲解,不会有人不知道吧。面试官直呼内行,看完只想默默找水喝(C语言)
- ai领域职业规划_我如何抛弃我的咨询职业并进入技术领域
- open output file xxx exe Permission denied