2014-04-15 2 views
2

웹 응용 프로그램 내에서 dozer mapper (5.3.2)를 사용하여 객체 매핑을 수행합니다.Doher 매퍼 싱글 톤 인스턴스 (Spring IOC)

DozerBeanMapper는 스프링 빈 정의를 사용하여 인스턴스화됩니다. 매핑 파일은 스프링 컨텍스트 xml의 속성으로 제공됩니다.

매핑이 작동하지만 로그에 따라 코드가 매퍼를 사용할 때마다 DozerBeanMapper의 인스턴스가 만들어집니다.

INFO DozerBeanMapper:166 - Initializing a new instance of dozer bean mapper. 

이것은 내 관심사입니다. 매퍼가 한 번만 만들어지기를 기대합니다.

스프링 빈 구성에서 scope = "singleton"을 명시 적으로 사용하려고 시도했지만 어느 쪽도 도움이되지 않습니다.

시도해 볼만한 제안이 있으십니까?

+0

을 어떻게 당신은 정보 로그 있음을 생성하는 방법으로 매퍼를 사용합니까 메시지? –

+0

@Andrei Stefan - Log4j ConsoleAppender를 rootLogger 수준의 INFO로 사용하고 있습니다. – Vivek

+0

"코드가 매퍼를 사용할 때마다"라고 말했듯이, 그 코드는 무엇입니까? 매퍼가 어떻게 스스로를 "초기화"할 수 있습니까? –

답변

1

내가 대신 도저와 Spring 통합을 사용하는 것이 좋습니다 것, 즉 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> 
+0

그래, 내가 이것을 시도 하고이 반복 instatiation 피하는 데 도움이 볼 수 있습니다. – Vivek

+0

나는 이것을 시험해 보았다, 행운이 없다. 아마도 이것에 대한 더 많은 분석이 Spring IOC 범위를 암시합니다. "싱글 톤"은 작동하지 않습니다. 확실하지 않지만, 아직 생성자에서 일부 디버그 문으로 시도하십시오. – Vivek

관련 문제