Mybatis配置-对象工厂(objectFactory)

2023-12-18 20:10:11

每当MyBatis创建一个结果对象的新实例时,它会使用ObjectFactory实例来完成。默认的ObjectFactory仅仅是使用默认构造函数或带有参数的构造函数(如果存在参数映射)实例化目标类。如果您想要覆盖ObjectFactory的默认行为,可以创建自己的ObjectFactory。例如:

// ExampleObjectFactory.java
public class ExampleObjectFactory extends DefaultObjectFactory {
  @Override
  public <T> T create(Class<T> type) {
    return super.create(type);
  }

  @Override
  public <T> T create(Class<T> type, List<Class<?>> constructorArgTypes, List<Object> constructorArgs) {
    return super.create(type, constructorArgTypes, constructorArgs);
  }

  @Override
  public void setProperties(Properties properties) {
    super.setProperties(properties);
  }

  @Override
  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接口非常简单。它包含两个create方法,一个用于处理默认构造函数,另一个用于处理带有参数的构造函数。最后,setProperties方法可以用来配置ObjectFactory。在objectFactory元素的主体中定义的属性将在ObjectFactory实例初始化后传递给setProperties方法。

文章来源:https://blog.csdn.net/hay23455/article/details/135068516
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。