应该重用ModelMapper实例来利用缓存的TypeMaps吗?

时间:2016-09-20 02:51:03

标签: java modelmapper

我正在使用ModelMapper在对象之间进行直接映射。

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

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

我在源代码中注意到,如果TypeMapsourceObj之间不存在destObj它会在TypeMap方法中缓存getOrCreate

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

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

这个结论是否正确?

感谢

1 个答案:

答案 0 :(得分:5)

是。 FAQ中甚至有关于此的部分:

  

我应该重用我的ModelMapper实例吗?

     

除非您需要在相同类型之间进行不同的映射,否则最好重新使用相同的ModelMapper实例。如果使用依赖项注入容器,则可以通过将ModelMapper配置为单例来完成此操作。