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 @ 2023-08-23 09:11  Chenyi_li  阅读(35)  评论(0)    收藏  举报