W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
每次 MyBatis 創(chuàng)建結(jié)果對象的新實例時,它都會使用一個對象工廠(?ObjectFactory
?)實例來完成實例化工作。 默認(rèn)的對象工廠需要做的僅僅是實例化目標(biāo)類,要么通過默認(rèn)無參構(gòu)造方法,要么通過存在的參數(shù)映射來調(diào)用帶有參數(shù)的構(gòu)造方法。 如果想覆蓋對象工廠的默認(rèn)行為,可以通過創(chuàng)建自己的對象工廠來實現(xiàn)。比如:
// ExampleObjectFactory.java
public class ExampleObjectFactory extends DefaultObjectFactory {
public Object create(Class type) {
return super.create(type);
}
public Object create(Class type, List<Class> constructorArgTypes, List<Object> constructorArgs) {
return super.create(type, constructorArgTypes, constructorArgs);
}
public void setProperties(Properties properties) {
super.setProperties(properties);
}
public <T> boolean isCollection(Class<T> type) {
return Collection.class.isAssignableFrom(type);
}}
<!-- mybatis-config.xml -->
<objectFactory type="org.mybatis.example.ExampleObjectFactory">
<property name="someProperty" value="100"/>
</objectFactory>
?ObjectFactory
接口很簡單,它包含兩個創(chuàng)建實例用的方法,一個是處理默認(rèn)無參構(gòu)造方法的,另外一個是處理帶參數(shù)的構(gòu)造方法的。 另外,?setProperties
方法可以被用來配置 ?ObjectFactory
?,在初始化你的 ?ObjectFactory
實例后, ?objectFactory
元素體中定義的屬性會被傳遞給 ?setProperties
方法。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: