Spring的FactoryBean使用

 Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean。工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象。

如果大家有看过Mybatis的SessionFactoryBean和Activiti初始化引擎的ProcessEngineFactoryBean两个类就应该了解FactoryBean的具体使用。

首先定义一个产品的实体类
Spring的FactoryBean使用_第1张图片

创建一个产品的工厂类:

Spring的FactoryBean使用_第2张图片

注入到Spring的配置文件中:

Spring的FactoryBean使用_第3张图片

写一个测试类测试一下:

Spring的FactoryBean使用_第4张图片

由此可见,通过使用FactoryBean,我们可以得到不同类型的对象实例。这也就是我们在AOP中通过设置calss为ProxyFactoryBean可以返回不同类型的业务对象的原理。在实际应用中若能灵活使用FactoryBean,则可以给应用程序增加很多的魔幻功能。

你可能感兴趣的:(FactoryBean)