当前位置: 首页 > 知识库问答 >
问题:

具有Spring IOC的Dozer mapper单例实例

龙毅
2023-03-14

在web应用程序中,我使用dozer mapper(5.3.2)执行一些对象到对象的映射。

DozerBeanMapper使用Spring bean定义实例化。映射文件作为Spring上下文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.

这与我有关,我希望映射器只创建一次。

我曾尝试在Springbean配置中显式使用scope=“singleton”,但这也无济于事。

有什么建议让我试试吗?

共有1个答案

翟英达
2023-03-14

我最好使用Spring与Dozer的集成,即DozerBeanMapperFactoryBean,请参阅此处的文档以了解更多详细信息:

   <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>
 类似资料:
  • 问题内容: 在这里,我的疑问是,根据实践,如果您使用易失性,安全的发布方式发生Java并发事件(即,一旦该引用对另一个线程可见,则该数据也将可用)。我可以在这里使用它吗?但是,如果正确,则假定线程1现在检查“资源”,并且它为null,因此开始创建对象。当线程1创建对象时,另一个线程即线程2出现并开始检查“资源”的值,线程2发现它为空(假设创建“资源”对象需要花费大量时间,并且由于线程1尚未完成创建

  • 问题内容: 这是我的http服务器: 我需要在myHander内部访问实例t1。 有什么办法吗? 谢谢! 问题答案: 有一种方法可以将属性设置为class: 您必须注意,在所有使用myHandler的地方都将是t1的相同实例

  • 我需要定义一个类和大量实例(超过30个,但代码中给出了其中的3个),以便能够在python模块文件之间共享它们。我对以下代码有问题(简化): 它给出了错误: 我试图在类中定义实例,以避免为它们定义实例并使代码变长。 通过一个类定义30多个实例的pythonic方法是什么?定义类中的实例的解决方案是什么? file1.txt的内容:

  • 为什么会有这个类 平常我们使用单例不外乎两种方式: 在对象里加个静态方法getInstance()来获取。此方式可以参考 【转】线程安全的单例模式 这篇博客,可分为饿汉和饱汉模式。 通过Spring这类容器统一管理对象,用的时候去对象池中拿。Spring也可以通过配置决定懒汉或者饿汉模式 说实话我更倾向于第二种,但是Spring更注重的是注入,而不是拿,于是我想做Singleton这个类,维护一个

  • 问题内容: 这是我写的三个类: Tester类的main方法的输出为: 为什么sx返回0而不是1?由于不是Rectangle变量的当前实例,并且该类也声明了相同的实例变量,或者Rectangle类中的变量没有像对getX()一样覆盖Shape类中的先前公共x变量。矩形类中的方法因此返回1? 同样作为一般规则,超类仅在其子类中也声明了其子类方法时才可以访问其子类的实现?这是因为编译器会看到“ Sha