一、FactoryBean
在Spring中Bean有两种,一种是普通bean,一种是FactoryBean,通俗一点就是工厂Bean,FactoryBean可以⽣成某⼀个类型的Bean实例(返回给我们),也就是说我们可以借助于它⾃定义Bean的创建过程。以下是FactoryBean的源码:
下面使用FactoryBean创建自定义的Bean。
首先创建Company类:
创建CompanyFactoryBean类,实现FactoryBean接口:
xml中注册Company对象,此时需要使用CompanyFactoryBean来注册:
测试代码:
测试结果为:
获取FactoryBean则需要在id前加上&符号,如下所示:
测试结果为:
简单来说,我们可以通过实现FactoryBean来实现自定义的复杂Bean的初始化。
二、BeanFactory
BeanFactory接⼝是容器的顶级接⼝,定义了容器的⼀些基础⾏为,负责⽣产和管理Bean的⼀个⼯⼚,具体使⽤它下⾯的⼦接⼝类型,⽐如ApplicationContext。在Spring的源码中,就是以BeanFactory来作为实现的主链路。