Spring的工厂Bean

Spring的工厂Bean是Spring的一种特殊Bean,这种工厂Bean必须实现FactoryBean接口

FactoryBean接口是工厂Bean的标准接口,实现该接口的Bean通常只能作为工厂Bean使用。当我们将工厂Bean部署在容器中,并通过getBean()方法来获取工厂Bean时,容器不会返回FactoryBean实例,而是返回FactoryBean的产品。

FactoryBean接口提供如下三个方法:

接口描述
T getObject()实现该方法负责返回该工厂Bean生成的Java实例
Class<?> getObjectType()实现该方法返回该工厂Bean生成的Java实例的实现类
boolean isSingleton()

实现该方法表示该工厂Bean生成的Java实例是否为单例模式

实现FactoryBean接口的Bean无法作为正常Bean使用。配置FactoryBean与配置普通Bean的定义没有区别,但当客户端对该Bean id请求时,容器返回该FactoryBean的产品,而不是返回该FactoryBean本身。

当我们确实需要获取FactoryBean本身时,可以在Bean id前加&符号。

对于初学者而言,可能无法体会到工厂Bean的作用。实际上,FactoryBean是Spring中非常有用的一个接口。Spring内置提供了很多实用的工厂Bean,例如TransactionProxyFactoryBean,这个工厂Bean专门用于为目标Bean创建事务代理。

Spring提供的工厂Bean,大多用于生产一批具有某种特征的Bean实例,工厂Bean是Spring的一个重要工具类。

转载于:https://my.oschina.net/u/2914561/blog/759781

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值