2012-11-10 28 views
5

EDIT: Một lib mới đã được giới thiệu trong đó làm rõ điều cho các phiên bản mớiDozer và mùa xuân hội nhập

Kể từ phiên bản 5.5.0 mùa xuân hội nhập đến trong vòng thêm mô-đun dozer xuân.


Chào bạn Tôi là tương đối mới để Dozer và mùa xuân và một chút nhầm lẫn về cách để đưa tại chỗ.

Từ trang web dozer: http://dozer.sourceforge.net/documentation/usage.html

mùa xuân hội nhập ...

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

Bây giờ từ 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> 

Vì vậy, tôi không thực sự chắc chắn cách nào tôi nên sử dụng nó. Mục tiêu của tôi là có đối tượng người lập bản đồ trong các lớp học kinh doanh của tôi sẽ chuyển đổi Business Objects thành DTO (và hoàn nguyên). Vì vậy, tôi nghĩ rằng nó chỉ nên là một Dependency Injection cơ bản?

Cảm ơn bạn đã được trợ giúp.

Trả lời

9

Cả hai đều là cách tiếp cận hợp lệ, chỉ cần tiêm mapper này như một sự phụ thuộc trong lớp dịch vụ chịu trách nhiệm lập bản đồ, ví dụ:

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

Với DozerBeanMapperFactoryBean cách tiếp cận dọc theo những dòng nên làm việc:

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

Điều này trả về một bản sao của người lập bản đồ, do đó, chỉ cần nhập một loại bản đồ theo cách này:

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

Sẽ y ou tâm nói với tôi sự khác biệt giữa việc sử dụng Bean Mapper Factory Bean thay vì người lập bản đồ trực tiếp? Có thể tùy chọn cấu hình? Thanks anyway, tôi sẽ thử nghiệm với đề xuất đầu tiên –

+0

DozerBeanMapperFactoryBean là một bean nhà máy Spring, trả về các cá thể Mapper và âm thanh giống như nó phù hợp hơn cho việc tiêm phụ thuộc Spring, tôi đã sửa đổi câu trả lời bằng một ví dụ. –

+0

Cuối cùng tôi đã đi với giải pháp DozerBeanMapper. Cảm ơn. –

Các vấn đề liên quan