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>
我会推荐本地存储的文件中,然后实施tasklet将文件复制到使用ch.ethz.ssh2SFTPv3Client等库的FTP服务器。 –
谢谢你的建议。但我不想写新的代码或tasklet。我正在寻找在SFTP服务器上写入文件的spring batch的内置功能。 – Vaibs
没有这样的事情。另外,我怀疑是否明智做到这一点,因为存在不稳定性问题以及延迟和性能问题(您不希望您的作业暂停它的等待ftp服务器准备好接收数据的时间)。此外,通常你有一个工作控制系统,负责将文件从一个地方复制到另一个地方,只需要负责生成文件并将其存储在本地。当然这取决于具体情况。但是通常我认为最好不要让作家直接写入FTP服务器。 –