Spring註解驅動開發——FactoryBean介面
阿新 • • 發佈:2018-12-21
使用Spring提供的工廠Bean(FactoryBean)
FactoryBean是一個介面,子類需實現其三個方法:
getObject():獲取物件,必須重寫
getObjectType():獲取物件型別,必須重寫
isSingleton():是否單例,可以重寫
public class MyPersonFactoryBean implements FactoryBean<Person> { public Person getObject() throws Exception { return new Person("小吳",23); } public Class<?> getObjectType() { return Person.class; } /** * true:單例 * false:每次獲取都重新建立新例項 */ public boolean isSingleton() { return true; } }
容器中註冊工廠Bean:
@Configuration
public class MainConfig {
@Bean
public MyPersonFactoryBean myPersonFactoryBean(){
return new MyPersonFactoryBean();
}
}
測試會發現在容器中獲取id為myPersonFactoryBean的Bean的例項的型別是Person:說明將工廠Bean註冊後獲取的物件其實是工廠Bean的getObject()方法返回的例項,那如果想獲取MyPersonFactoryBean型別的例項呢?在id的前面加個&即可