java - FactoryBean与BeanFactory有什么却别?
阿神
阿神 2017-04-18 09:36:25
[Java讨论组]

Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean,这两种Bean都被容器管理,但工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该FactoryBean的getObject方法所返回的对象。
那么,FactoryBean与BeanFactory有什么却别?

阿神
阿神

闭关修行中......

全部回复(3)
天蓬老师

BeanFactory是个 Factory ,也就是对象工厂, FactoryBean 是个 Bean 。

PHP中文网

BeanFactory:实现这个接口的对象它们可以作为它们自己的工厂(这个根接口,用来访问spring容器),其实spring可以成为容器很大一部分是依赖这个接口

FactoryBean:如果某个对象实现了这个接口,这个对象会被当做一个工厂(为了让某个对象暴露),而不是直接以一个对象暴露自己。
以上为英文渣翻译。
说说我的理解:
之前没有研究过这两个对象的区别,刚刚看了一下源码的翻译和一些类的实现,发现挺有意思的。
首先BeanFactory,需要知道对象的一系列属性(通过XML配置),然后再构造对象,并对对象进行管理,如对象的生命周期,是否单例,以及复合对象(对象有其他对象的引用)的组装(自动装配),对象初始化的一些准备工作,属性注入等等,能说一堆。可以说BeanFactory更像一个公司,而不像是FactoryBean,这个对象更像一个工厂,是专门生产某一类对象,几乎没有管理功能,只是单一的构造对象而已。

PHP中文网

一个是bean的factory,一个是bean

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号