在Web应用程序中,我使用dozer mapper(5.3.2)来执行一些对象到对象的映射。
使用spring bean定义实例化DozerBeanMapper。映射文件在spring context xml中作为属性提供。
<bean id="idmToBoMPersonMapper" class="org.dozer.DozerBeanMapper" lazy-init="false" scope="singleton" >
<property name="mappingFiles" value="config/IiIdmToBoMPersonMapping.xml"/>
</bean>
映射正在工作,但根据日志,每次代码使用映射器时都会创建DozerBeanMapper的实例。
INFO DozerBeanMapper:166 - Initializing a new instance of dozer bean mapper.
这是我的担忧,我希望映射器只创建一次。
我试图在spring bean配置中明确使用scope =“singleton”,但这也无济于事。
我有什么建议可以尝试吗?
答案 0 :(得分:1)
我最好使用Spring与Dozer的集成,即DozerBeanMapperFactoryBean,请参阅文档here以获取更多详细信息:
<bean class="org.dozer.spring.DozerBeanMapperFactoryBean">
<property name="mappingFiles"
value="classpath*:/*mapping.xml"/>
<property name="customConverters">
<list>
<bean class=
"org.dozer.converters.CustomConverter"/>
</list>
</property>
<property name="eventListeners">
<list>
<bean class="org.dozer.listeners.EventListener"/>
</list>
</property>
<property name="factories">
<map>
<entry key="id" value-ref="bean-factory-ref"/>
</map>
</property>
</bean>