2012-11-10 16 views
5

EDIT: nowy lib, który został wprowadzony do wyjaśnienia rzeczy nowych wersjachspycharek i wiosna integracja

Od wersji 5.5.0 Wiosna integracja wchodzi w dodatkowy moduł spycharki wiosny.


Cześć Jestem stosunkowo nowy do spycharek i Spring i nieco mylić o tym, jak umieścić, że w miejscu.

Od strony leśne: http://dozer.sourceforge.net/documentation/usage.html

Wiosna integracji ...

<bean id="mapper" class="org.dozer.DozerBeanMapper"> 
    <property name="mappingFiles"> 
    <list> 
     <value>dozer-global-configuration.xml</value>    
     <value>dozer-bean-mappings.xml</value> 
     <value>more-dozer-bean-mappings.xml</value> 
    </list> 
    </property> 
</bean> 

Teraz z http://dozer.sourceforge.net/documentation/springintegration.html:

<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> 

Więc nie jestem pewien, w którą stronę powinienem go użyć. Moim celem jest posiadanie obiektu mappera w moich klasach biznesowych, który skonwertuje Business Objects na DTO (i odwrotnie). Więc myślę, że to powinien być podstawowy zastrzyk Dependency?

Dzięki za pomoc.

Odpowiedz

9

Oba są ważne podejścia, po prostu wstrzyknąć ten mapowania jako zależność w klasie służby odpowiedzialne za mapowania, np

@Service 
public class MyMappingService{ 
@Autowired DozerBeanMapper dozerBeanMapper; 
} 

Z DozerBeanMapperFactoryBean podejście wzdłuż tych linii powinno działać:

<bean class="org.dozer.spring.DozerBeanMapperFactoryBean"> 
.... 
</bean> 

Zwraca to instancję odwzorowującą, więc po prostu wpisz typ odwzorowania w ten sposób:

@Service 
public class MyMappingService{ 
@Autowired Mapper dozerBeanMapper; 
} 
+0

Czy czy nie chcesz mi powiedzieć, że różnica polega na tym, że używasz Bean Mapper Factory Bean zamiast mappera? Może opcje konfiguracyjne? Dzięki i tak idę na test z pierwszą propozycją. –

+0

DozerBeanMapperFactoryBean to fabryka Spring, która zwraca instancje Mappera i brzmi, jakby była bardziej odpowiednia dla wtrysku zależnego od Spring, zmieniłem odpowiedź na przykład. –

+0

W końcu poszedłem z rozwiązaniem DozerBeanMapper. Dzięki. –