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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!