详细解说FactoryBean和BeanFactory的区别

BeanFactory是接口,提供了IOC容器最基本的形式,给具体的IOC容器的实现提供了规范。

FactoryBean也是接口,为IOC容器中Bean的实现提供了更加灵活的方式,FactoryBean在IOC容器的基础上给bean的实现加上了一个简单工厂模式和装饰器模式。

BeanFactory是个factory,也就是IOC容器或对象工厂,FactoryBean是个Bean。在spring中,所有的bean都是由BeanFactory(也就是IOC容器)来管理的,但对FactoryBean而言,这个Bean不是简单的Bean,而是一个能生产或者修饰对象生成的工厂Bean,它的实现与设计模式中的工厂模式和装饰器模式类似。

一般情况下,spring通过反射机制利用bean的class属性指定实现类实例化bean,在某些情况下,实例化bean过程比较复杂,如果按照传统的方式,则需要在bean中提供大量的配置信息,配置方式的灵活性是受限的,这时采用编码的方式可能会得到一个简单的方案,spring为此提供一个org.springframework.bean.factory.FactoryBean接口,用户可以通过实现该接口定制实例化Bean的逻辑。FactoryBean接口对于spring框架来说占用重要的地位,spring自身就提供了70多个FactoryBean的实现。他们隐藏了实例化等一些复杂的bean的细节,给上层应用带来了便利。从spring3.0开始,FactoryBean开始支持泛型,即接口声明改为FactoryBean的形式

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值