Spring中BeanFactory和FactoryBean

Spring中BeanFactory和FactoryBean

1.BeanFactory是一个接口,在Spring中是IOC容器核心的接口,它负责生产Bean、管理Bean、建立对象的关系,其中实现类如下
ClassPathXmlApplicationContext(读取项目根目录下的xml)、
FileSystemXmlApplicationContext(读取指定目录下的xml)、
AnnotationConfigApplicationContext(读取项目中注解的bean)
下面看一下BeanFactory使用。

Spring中BeanFactory和FactoryBean

2.FactoryBean是一个接口,在Spring中占用重要的地位,Spring本身就提供了特别多的FactoryBean的实现,它们隐藏了实例化复杂bean的细节,给上层应用带来了便利,当需要对一个bean进行复杂的初始化,可以考虑用FactoryBean,下面看一下对FactoryBean的使用。

定义实体类Student对象
Spring中BeanFactory和FactoryBean
定义一个StudentFactoryBea对象实现FactoryBean接口,FactoryBean接口有三个方法
1.getObject方法获取FactoryBean创建的bean实例
2.getObjectType方法获取FactoryBean创建的bean类型
3.isSingleton方法获取FactoryBean创建的bean作用域默认是单例bean

Spring中BeanFactory和FactoryBean
获取Student对象实例,当调用getBean方法时候,实际是调用studentFactoryBean类中的getObject方法。
Spring中BeanFactory和FactoryBean

总结
BeanFactory是获取Spring容器中的bean,FactoryBean是当初始化复杂的bean需要使用到FactoryBean。