许久没记录笔记了,这回来重新熟悉一下 Spring 中 FactoryBean 的使用,顾名思义,它是用来获得相应 Bean 的工厂的。它与另一个 Spring 中的接口 BeanFactory 的作用不一样的,不能多说了。FactoryBean 和 BeanFactory 都是在 org.springframework.beans.factory
包中,谁能一看类名搞清楚它们的差别?
- FactoryBean: 用于创建某个特定的 Spring bean 的工厂类
- BeanFactory: Spring 上下文的最顶层接口,如
ApplicationContext
就继承了该接口,它可称之为所有 Spring bean 的工厂
这儿说的是第一个 FactoryBean, 它的接口声明是
1 2 3 4 5 |
public interface FactoryBean<T> { T getObject() throws Exception; Class<?> getObjectType(); boolean isSingleton(); } |
它最终的效果是,Spring 容器中注册一个名称为 abcFactoryBean 的 AbcFactoryBean
实例,通后名称 abcFactoryBean
获得的实际上是相应 AbcFactoryBean.getObject()
返回的对象,类型为 getObjectType()
, isSingleton()
是否是单例。 阅读全文 >>