Spring中有兩種類型的Bean,一種是普通Bean,另一種是工廠Bean,即FactoryBean。工廠Bean跟普通Bean不同,其返回的對象不是指定類的一個實例,其返回的是該工廠Bean的getObject方法所返回的對象。
如果大家有看過
Mybatis的SessionFactoryBean和Activiti初始化引擎的ProcessEngineFactoryBean兩個類就應該了解FactoryBean的具體使用。
首先定義一個產品的實體類
創建一個產品的工廠類:
注入到Spring的配置文件中:
寫一個測試類測試一下:
由此可見,通過使用FactoryBean,我們可以得到不同類型的對象實例。這也就是我們在AOP中通過設置calss為ProxyFactoryBean可以返回不同類型的業務對象的原理。在實際應用中若能靈活使用FactoryBean,則可以給應用程序增加很多的魔幻功能。
