原文网址:Spring--FactoryBean--使用/原理/详解_IT利刃出鞘的博客-CSDN博客
简介
说明
本文介绍Spring中的FactoryBean,包括:作用,用法,原理,MyBatis对FactoryBean的应用。
FactoryBean的作用
- 通过一个FactoryBean来生产一个对象
- 可以获取生产出的对象的类型
- 可以判断生产出的对象是不是单例
FactoryBean的来源
在某些情况下,实例化Bean过程比较复杂,若按照传统的方式,则需要在中提供大量的配置信息,不够灵活,这时采用编码的方式能得到一个简单的方案。Spring为此提供了一个org.springframework.bean.factory.FactoryBean的工厂类接口,用户可以通过实现该接口定制实例化Bean的逻辑。
FactoryBean接口在Spring中占重要地位,Spring自身就提供了70多个FactoryBean的实现。它们隐藏了实例化一些复杂Bean的细节,给上层应用带来了便利。
从Spring 3.0 开始, FactoryBean开始支持泛型,即接口声明改为 FactoryBean<T> 的形式。
源码:
public interface FactoryBean<T> {
String OBJECT_TYPE_ATTRIBUTE = "factoryBeanObjectType";
@Nullable
T getObject() throws Exception;
@Nullable
Class<?> getObjectType();
default boolean isSingleton() {
return true;
}
}
普通bean与FactoryBean的区别
Spring 容器中有两种bean:普通bean和工厂bean。
上边只是部分内容,为便于维护,本文已迁移到此地址:Spring-FactoryBean-使用/原理/详解 - 自学精灵