Spring中 BeanFactory和FactoryBean
BeanFactory
BeanFactory是一个接口也是IOC最基本的容器,负责生产和管理bean,它为其他具体的IOC容器提供了最基本的规范,比如DefaultListableBeanFactory、XmlBeanFactory、ApplicationContext等具体的容器都是对BeanFactory接口的实现,再在其基础之上附加其它的功能。
FactoryBean
FactoryBean是一个接口,当在IOC容器中的Bean实现了FactoryBean后,通过getBean(String beanName)获取到的Bean对象并不是FactoryBean的实现类对象,而是这个实现类的getObject()方法返回的对象。要想获取FactoryBean的实现类,就要getBean(&beanNme),在BeanName之前加上&。
隐藏了实例化一些复杂Bean的细节,给上层应用带来了便利.
和设计模式中的工厂模式和修饰器模式相似.
getBean(beanName)方法获取的是getObject()返回的对象。
getBean(&beanName)方法获取的才是实现FactoryBean的对象。
getObject()里面可以返回如何对象,所以FactoryBean为Bean提供了更加灵活的实现方式。
FactoryBean的案例
1.创建FactoryBean的实现类
getBean(beanName)方法获取的是getObject()返回的对象。
getBean(&beanName)方法获取的才是实现FactoryBean的对象。
getObject()方法确实可以实现隐藏实现的细节的功能。
getObject()里面可以返回如何对象,所以FactoryBean为Bean提供了更加灵活的实现方式。
作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)