在Spring中,一般情况下,配置的什么类型就会可以通过getBean()获取到相同类型的实例,对于一些复杂的bean,需要进行大量初始化工作的,我们就可以让这个bean实现FactoryBean<T>这个接口,
public interface FactoryBean<T> {
@Nullable
T getObject() throws Exception;
@Nullable
Class<?> getObjectType();
default boolean isSingleton() {
return true;
}
}
这样,通过getBean获取到的bean将会是getObject()方法返回的实例,这样,编程人员就可以额外的做相应的工作了。
当你看到某个类型实现了FactoryBean<T>,先直接去看它实现的getObject()就能知道他要感什么了。