2016-12-07 237 views
2

我正在使用Spring Batch 2. version.I已经生成了csv文件并且能够以本地的csv格式保存。Spring Batch ::如何使用Spring Batch在sftp服务器上生成文件?

现在我想生成相同的文件,但它会存储在SFTP服务器上。

我已经浏览了一些在sftp服务器上生成文件的教程,但他们使用Spring与Spring Batch进行集成。

是否可以使用Spring Batch的只产生SFTP服务器上的文件吗?

下面定义itemReader豆::

<bean id="itemReader" 
     class="org.springframework.batch.item.database.JdbcCursorItemReader" 
     scope="step"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="sql" 
      value="select u.ID, u.USER_LOGIN, u.PASSWORD, u.AGE from USERS u" /> 
     </property> 
     <property name="rowMapper"> 
      <bean class="com.example.UserRowMapper" /> 
     </property> 
    </bean> 

ItemWriter豆::

<bean id="flatFileItemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter"> 
     <property name="resource" value="file:csv/user.csv" /> 

     <property name="appendAllowed" value="true" /> 
     <property name="lineAggregator"> 
      <bean   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="name,age,id,password"/> 
         </bean> 
     </property> 
    </bean> 
+0

我会推荐本地存储的文件中,然后实施tasklet将文件复制到使用ch.ethz.ssh2SFTPv3Client等库的FTP服务器。 –

+0

谢谢你的建议。但我不想写新的代码或tasklet。我正在寻找在SFTP服务器上写入文件的spring batch的内置功能。 – Vaibs

+2

没有这样的事情。另外,我怀疑是否明智做到这一点,因为存在不稳定性问题以及延迟和性能问题(您不希望您的作业暂停它的等待ftp服务器准备好接收数据的时间)。此外,通常你有一个工作控制系统,负责将文件从一个地方复制到另一个地方,只需要负责生成文件并将其存储在本地。当然这取决于具体情况。但是通常我认为最好不要让作家直接写入FTP服务器。 –

回答

0

你来定制你的作家班

相关问题