MyBatis 3 XML配置-對象工廠

2022-04-07 15:06 更新

對象工廠(objectFactory)

每次 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方法。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號