首页 文章

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

提问于
浏览
2

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

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

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

我在源代码中注意到,如果 sourceObjdestObj 之间不存在 TypeMap ,它将在 getOrCreate 方法中缓存 TypeMap .

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

我'm assuming this is a fairly expensive operation, say if I' m将 sourceObj 的集合映射到 destObj . 这使我得出结论,我应该重用ModelMapper实例 .

这个结论是否正确?

谢谢

1 回答

  • 5

    是 . FAQ中甚至有一节关于此:

    我应该重用我的ModelMapper实例吗?除非您需要在相同类型之间进行不同的映射,否则最好重新使用相同的ModelMapper实例 . 如果使用依赖项注入容器,则可以通过将ModelMapper配置为单例来实现此目的 .

相关问题