spring温习-BeanFactory与FactoryBean

简介: 不管是平时,还是面试,现在对于spring的讨论少了很多,不再像刚进入人们视野时,那么抢眼;spring现在就像空气一样,只要是java构建的项目,十之八九都是建立在spring之上,因此不可轻视BeanFactory与FactoryBean,好久不见,一时也有些傻傻分不清楚,温习一下

不管是平时,还是面试,现在对于spring的讨论少了很多,不再像刚进入人们视野时,那么抢眼;spring现在就像空气一样,只要是java构建的项目,十之八九都是建立在spring之上,因此不可轻视

BeanFactory与FactoryBean,好久不见,一时也有些傻傻分不清楚,温习一下

如何区分

两者名字太接近了,经常被混淆,以结尾单词区分

BeanFactory以Factory结尾,表示它是一个工厂类(接口),整个spring可以说就是个大工厂,那它就是最基础的工厂

FactoryBean以Bean结尾,表示它是一个Bean,只是相对普通Bean,有些区别而已

BeanFactroy

在Spring中,BeanFactory是IOC容器的核心接口,定义了IOC的基本功能,包括:实例化、定位、配置应用程序中的对象及建立这些对象间的依赖

image.png

从它的接口声明中,主要定义了getBean方法。getBean方法是IOC容器获取bean对象和引发依赖注入的起点。方法的功能是返回特定的名称的Bean

BeanFactory只是个接口,是spring中比较原始的Factory,但有着庞大的继承、实现体系,有众多的子接口、实现类,都是附加了某种功能的实现

image.gifimage.png

FactoryBean

以Bean结尾,表示它是一个Bean,不同于普通Bean的是:它是实现了FactoryBean接口的Bean,根据该Bean的ID从BeanFactory中获取的实际上是FactoryBean的getObject()返回的对象,而不是FactoryBean本身,如果要获取FactoryBean对象,请在id前面加一个&符号来获取

image.png

传统方式获取Bean,则需要在中提供大量的配置信息,配置方式的灵活性受到限制,通过FactoryBean创建Bean,相对灵活很多,可以对Bean进行修饰,更有类似像AOP的ProxyFactoryBean,对Bean进行proxy处理

总结

至此,简单的概念、作用区分已经完成。通过名字后缀可以快速区别两者

BeanFactory:只要用到spring,其实就是在使用BeanFactory;而FactroyBean则隐晦得多,需要扩展Bean时,则是FactoryBean,更多灵活使用再开一篇

目录
相关文章
|
2月前
|
Java 关系型数据库 MySQL
Spring5深入浅出篇:Spring中的FactoryBean对象
Spring5深入浅出篇:Spring中的FactoryBean对象
|
4月前
|
XML Java 数据格式
spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象
spring中怎么通过静态工厂和动态工厂获取对象以及怎么通过 FactoryBean 获取对象
35 0
|
1月前
|
Java 测试技术 数据库连接
【Spring源码解读!底层原理高级进阶】【下】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨
【Spring源码解读!底层原理高级进阶】【下】探寻Spring内部:BeanFactory和ApplicationContext实现原理揭秘✨
|
1月前
|
Java 数据库连接 API
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
【Spring】1、Spring 框架的基本使用【读取配置文件、IoC、依赖注入的几种方式、FactoryBean】
49 0
|
10天前
|
XML Java 数据格式
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
19 0
Bean工厂探秘:解析Spring底层工厂体系BeanFactory的神奇之道
|
1月前
|
XML Java 开发者
【Spring源码解读 底层原理高级进阶】【上】探寻Spring内部:BeanFactory和ApplicationContext实现原理讲解
【Spring源码解读 底层原理高级进阶】【上】探寻Spring内部:BeanFactory和ApplicationContext实现原理讲解
|
3月前
|
Java 容器 Spring
Spring5源码(13)-BeanFactory简介
Spring5源码(13)-BeanFactory简介
29 1
|
3月前
|
XML Java 数据格式
Spring5源码(8)-BeanFactory和FactoryBean的区别
Spring5源码(8)-BeanFactory和FactoryBean的区别
31 0
|
3月前
|
Java C++ Spring
深入Spring原理-1.BeanFactory与ApplicationContext的区别
深入Spring原理-1.BeanFactory与ApplicationContext的区别
48 0
|
4月前
|
XML Java 数据格式
③【Spring】整合第三框架的常用机制:FactoryBean
③【Spring】整合第三框架的常用机制:FactoryBean
25 0

热门文章

最新文章