FactoryBean 是 Spring 框架中一个非常重要的接口,它为 Spring IoC 容器提供了更灵活的对象创建方式。
1. FactoryBean 的定义:
FactoryBean 是一个接口,它定义了三个方法:
public interface FactoryBean<T> {
@Nullable
T getObject() throws Exception;
@Nullable
Class<?> getObjectType();
default boolean isSingleton() {
return true;
}
}
getObject(): 这是最重要的方法。它负责创建并返回一个对象实例。这个对象实例可以是任何类型的对象,不一定是FactoryBean本身的类型。getObjectType(): 返回getObject()方法创建的对象的类型。如果无法在创建对象之前确定类型,可以返回null。isSingleton(): 指定getObject()方法返回的对象是否是单例。默认为true,表示返回单例对象。
2. FactoryBean 与普通 Bean 的区别:
- 普通 Bean: 当 Spring IoC 容器获取一个普通 Bean 时,它直接返回 Bean 本身的实例。
FactoryBean: 当 Spring IoC 容器获取一个FactoryBean时,它有两种选择:- 获取
FactoryBean本身的实例: 在 Bean 的名称前加上&符号,例如&myFactoryBean。 - 获取
FactoryBean创建的对象: 直接使用 Bean 的名称,例如myFactoryBean。 Spring 会调用FactoryBean的getObject()方法,并返回该方法创建的对象。</
- 获取

最低0.47元/天 解锁文章
1720

被折叠的 条评论
为什么被折叠?



