Spring batch 春季批量生产是一种过度生产吗

Spring batch 春季批量生产是一种过度生产吗,spring-batch,Spring Batch,我需要每周将CSV加载到数据库中一次。由于CSV文件包含两个表的数据,因此需要进行一些数据处理。因此,我将不得不处理一点CSV文件,可能会将其转换为2个不同的CSV文件,并将其加载到数据库中 我已经将石英配置到位。你认为使用SpringBatch来完成这项工作会有点过分吗?我想知道什么时候我应该使用它,什么时候我应该放弃quartz bean自己进行处理。Spring Batch非常适合这类工作,因为它减少了您需要关心的部件。在本例中,您所关心的只是对数据进行处理,然后插入到两个不同的表中。您可

我需要每周将CSV加载到数据库中一次。由于CSV文件包含两个表的数据,因此需要进行一些数据处理。因此,我将不得不处理一点CSV文件,可能会将其转换为2个不同的CSV文件,并将其加载到数据库中


我已经将石英配置到位。你认为使用SpringBatch来完成这项工作会有点过分吗?我想知道什么时候我应该使用它,什么时候我应该放弃quartz bean自己进行处理。

Spring Batch非常适合这类工作,因为它减少了您需要关心的部件。在本例中,您所关心的只是对数据进行处理,然后插入到两个不同的表中。您可以使用
FileItemReader
读取数据。然后使用
ItemProcessor
更改任何传入数据,并输出正确的数据,并进行适当的处理。您提供
itemProcessor
,因为它是您的自定义Java逻辑。然后您可以使用
JdbcItemWriter
,或者只需插入您自己的

这其中最美妙的部分是它的 [a]非常普遍,因此有很多很多的例子(请参阅:或Spring batch中的样本,以获取灵感)和
[b]它主要是声明性的。你不必担心那些你不关心的事情——你不需要弄清楚如何正确解析CSV文件,甚至不知道如何以可伸缩的方式读取文件。您只需要确保数据有效,并确保它在应该结束的地方结束。

Spring Batch增加了额外的要求和维护难度:

  • 您需要以字符串批处理惯用方式构造代码(实现它们的接口)
  • 您需要编写一些XML或Java配置—需要学习一个额外的DSL
  • 您需要管理工具来启动/停止/监视执行。Spring Batch Admin已正式弃用且未维护
  • 您需要维护
    批处理
    表,定义索引策略(默认情况下缺失),定义周期表清理
  • 我通过调试会话和源代码学习了SpringBatch,因为文档只涉及简单的案例(如CSV->DB)

我在很大程度上同意这一评估,但请记住,spring batch并非万灵药。springbatch(或任何框架)的缺点是,对于某些任务,您可以花费数小时挖掘框架代码,找出某些东西不起作用的原因。许多问题(小问题和大问题)的唯一症状是,这些东西根本不起作用,日志记录也不能很好地告诉您哪些东西不存在。也许有一天Spring会在他们的堆栈中添加一个“read programmers mind”类。你有其他建议吗?ThanksQuartz+服务层。没有以下方面的经验:&