我正在使用ModelMapper在对象之间进行直进映射。
ModelMapper mapper = new ModelMapper();
// TypeMap created
mapper.map(sourceObj, destObj);
mapper = new ModelMapper();
// TypeMap is recreated
mapper.map(sourceObj, destObj);我在源代码中注意到,如果TypeMap不存在于sourceObj和destObj之间,它将在getOrCreate方法中缓存TypeMap。
据我所知,这个缓存与mapper实例相关联,这意味着如果我必须使用一个新的sourceObj实例第二次将destObj映射到destObj,那么它将不得不重新创建TypeMap。
我假设这是一个相当昂贵的操作,比方说,如果我将一个sourceObj集合映射到destObj。这使我得出结论,我应该重用ModelMapper实例。
这个结论正确吗?
谢谢
发布于 2016-09-20 04:04:58
是。常见问题中甚至有一个关于这一点的章节:
我应该重用我的ModelMapper实例吗? 除非需要在相同类型之间进行不同的映射,否则最好重用相同的ModelMapper实例。如果使用依赖项注入容器,则可以通过将ModelMapper配置为单例来实现这一点。
https://stackoverflow.com/questions/39584965
复制相似问题