2014-10-20 127 views
0

在spring批處理中,我有一個要求,其中包含來自數據庫的客戶對象列表,並且從此列表中我需要創建多個文本文件。spring批處理 - 將對象數據寫入多個文件

clas Customer{ 
    long customerId; 
    string name; 
    Address add; 
    Phone phn; 
} 

class Address{ 
    string address; 
    long pincode; 
    string street; 
} 

class Phone{ 
    string phoneNumber; 
    string desc; 
} 

我想寫每個客戶不同的文本的數據文件,如

customer.txt -> customerId, name 
address.txt -> address, pincode, street 
phone.txt -> phoneNumber, desc 

我嘗試使用CompositeItemWriter可以委託對象不同的作家,但我不能得到如何以檢索特定對象或作者的屬性。

我不能得到任何樣本或解釋來實現CompositeWriter。有人可以幫助我與作家的實施?還有其他更好的方法嗎?

在此先感謝。

+0

檢查分類器書寫器 – 2014-10-20 21:06:22

回答

0

我能夠使用CompositeItemWriter將每個客戶的數據寫入不同的文本文件。以下是我如何爲客戶電話提取。我希望它能幫助別人。

<bean id="compositeCustomerWriter" 
     class="org.springframework.batch.item.support.CompositeItemWriter"> 
     <property name="delegates"> 
      <list> 
       <ref bean="customerWriter" /> 
       <ref bean="customerPhoneWriter" /> 
       <ref bean="customerAddressWriter" /> 
      </list> 
     </property> 
</bean> 

<bean id="customerPhoneWriter" class="org.springframework.batch.item.file.FlatFileItemWriter"> 
     <property name="resource" value="file:customer_phone_extract.txt" /> 
     <property name="lineAggregator" ref="customerPhonelineAggregator" /> 
</bean> 

<bean id="customerPhonelineAggregator" 
    class="org.springframework.batch.item.file.transform.DelimitedLineAggregator"> 
     <property name="delimiter" value="|" /> 
     <property name="fieldExtractor"> 
      <bean 
       class="org.springframework.batch.item.file.transform.BeanWrapperFieldExtractor"> 
       <property name="names" 
        value="phn.phoneNumber,phn.desc" /> 
      </bean> 
     </property> 
</bean> 
相關問題