Java 是否应该重用ModelMapper实例以利用缓存的类型映射?

Java 是否应该重用ModelMapper实例以利用缓存的类型映射?,java,modelmapper,Java,Modelmapper,我用它来做物体之间的直接映射 ModelMapper mapper = new ModelMapper(); // TypeMap created mapper.map(sourceObj, destObj); mapper = new ModelMapper(); // TypeMap is recreated mapper.map(sourceObj, destObj); 我在源代码中注意到,如果sourceObj和destObj之间不存在TypeMap,它将TypeMap缓存在getO

我用它来做物体之间的直接映射

ModelMapper mapper = new ModelMapper();
// TypeMap created
mapper.map(sourceObj, destObj);

mapper = new ModelMapper();
// TypeMap is recreated
mapper.map(sourceObj, destObj);
我在源代码中注意到,如果
sourceObj
destObj
之间不存在
TypeMap
,它将
TypeMap
缓存在
getOrCreate
方法中

据我所知,这个缓存绑定到映射器实例,这意味着如果我必须使用新的ModelMapper实例第二次将
sourceObj
映射到
destObj
,它将不得不重新创建
TypeMap

我假设这是一个相当昂贵的操作,比如说如果我将
sourceObj
的集合映射到
destObj
。这使我得出结论,我应该重新使用ModelMapper实例

这个结论正确吗


谢谢

是的。本手册中甚至有一节介绍了这一点:

我应该重用ModelMapper实例吗

除非您需要相同类型之间的不同映射,否则最好重新使用相同的ModelMapper实例。如果使用依赖项注入容器,可以通过将ModelMapper配置为单例来实现这一点


谢谢不知怎么错过了那个部分。