Spring 入门学习 —— XML 格式文件介绍(十七)(工厂方法与FactoryBean [5])

97 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第21天,点击查看活动详情

上一篇文章及上上篇文章我们介绍如何通过工厂方法模式中的工厂方法结合xml 文件实现bean 的注册与依赖注入。这篇文章我们正式开始介绍FactoryBean。

什么是FactoryBean

有的人一看到FactoryBean,可能下意识地以为它和BeanFactory 有什么关系,实则不然。对于它们两个的区别,我们可以直接从名字上做判断。

对于BeanFactory,它的主语是Factory,定语是Bean,它的含义就是一个Bean 的工厂;而对于FactoryBean 来说,它的主语是Bean,定语是Factory,所以它本身也就与其他注册到容器中的对象一样,知识一个Bean 而已。

但是,这种类型的Bean 本身的功能就是用来生产对象的。也可以说,它本身就是一个工厂Bean,用来生产对象。实质上,FactoryBean 是Spring 容器提供的一个接口,可以用来扩展容器对象实例化逻辑

为什么要有FactoryBean

参考之前的文章,我们就知道通过xml 配置进行对象实例化的注册有多么繁琐;同时,如果某第三方库无法注入到Spring 容器中,我们就可以考虑使用如何实现org.springframework.beans.factory.FactoryBean 接口,然后完成自己的对象实例化逻辑代码。

当然了,我们如果不使用FactoryBean,而是像前两篇文章介绍的那样,自己实现自定义工厂方法类也是可以的,但是还是建议考虑FactoryBean,因为它是Spring 框架提供的用来处理这种情况的方便且快捷的工具接口。

总结

这篇文章我们主要就是引出什么是FactoryBean,并且介绍FactoryBean 的概念及出现原因。具体如何使用以及FactoryBean 的组成我们将在后续的文章中介绍。读者一定要有相关的意识,Spring 的存在的意义就是为了简便开发人员的工作,所以对于前面介绍的看起来就很复杂的实现方法,Spring 一定会去想办法做一些“操作”的。