Spring中有兩種類型的Bean,一種是普通Bean,另外一種是工廠Bean,即FactoryBean。工廠Bean跟普通Bean不一樣,其返回的對象不是指定類的一個實例,其返回的是該工廠Bean的getObject方法所返回的對象。
若是你們有看過Mybatis的SessionFactoryBean和Activiti初始化引擎的ProcessEngineFactoryBean兩個類就應該瞭解FactoryBean的具體使用。
首先定義一個產品的實體類
建立一個產品的工廠類:
注入到Spring的配置文件中:
寫一個測試類測試一下:
因而可知,經過使用FactoryBean,咱們能夠獲得不一樣類型的對象實例。這也就是咱們在AOP中經過設置calss爲ProxyFactoryBean能夠返回不一樣類型的業務對象的原理。在實際應用中若能靈活使用FactoryBean,則能夠給應用程序增長不少的魔幻功能。