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提供了更加灵活的实现方式。

作者:静默虚空
欢迎任何形式的转载,但请务必注明出处。
限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

posted @   Chenyi_li  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示