Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以将现有Java项目转换为Spring批处理作业_Java_Spring_Spring Batch - Fatal编程技术网

是否可以将现有Java项目转换为Spring批处理作业

是否可以将现有Java项目转换为Spring批处理作业,java,spring,spring-batch,Java,Spring,Spring Batch,我的问题没有问题 springbatch是将少数一次性(一次完成类型)java项目转换为springbatch项目中单独的“作业”的合适工具吗?这些项目往往在某个时刻与数据库交互 带有绒毛/背景 我工作的公司有几个“一次性”java项目,它们实际上只做一件事(无论是在任意时间,还是在我们告诉它的任何时候),然后它们就完成了。它们倾向于在生命周期的某个时刻与数据库交互,但不一定同时进行 我的任务是创建更多的项目/脚本,但是我们不想在我们的机器上有近10个不同的perl脚本和几个JAR,而是希望将

我的问题没有问题

springbatch是将少数一次性(一次完成类型)java项目转换为springbatch项目中单独的“作业”的合适工具吗?这些项目往往在某个时刻与数据库交互


带有绒毛/背景

我工作的公司有几个“一次性”java项目,它们实际上只做一件事(无论是在任意时间,还是在我们告诉它的任何时候),然后它们就完成了。它们倾向于在生命周期的某个时刻与数据库交互,但不一定同时进行

我的任务是创建更多的项目/脚本,但是我们不想在我们的机器上有近10个不同的perl脚本和几个JAR,而是希望将所有这些项目都放在一个地方,并在需要运行它们时运行它们(理想情况下通过命令行参数在远程机器上运行)。从我对SpringBatch所做的研究来看,它听起来正是我们想要的,尤其是它的功能

我对Spring Boot和Spring框架相当熟悉,但由于某种原因,在阅读有关作业和设置的文章时,领域语言对我来说似乎有点陌生,我只是想确保我不会浪费时间试图弄明白这一点,如果它不现实的话。我们希望这只是一个舒适的地方,为任何当前或未来的项目,是独立运行,使我们尽量减少对我们的盒子混乱。为了澄清,我一直在说项目,但据我所知,如果这些项目要成为Spring Batch项目的一部分,它们需要转换为工作。这现实吗?

(将评论转换为答案)

如果任务调度、事务管理、分块消费数据、启动/停止操作的灵活性、重试机制等都是您花时间自己编码的事情,那么肯定可以看看
Spring Batch
,它已经实现了上述所有功能的强大功能

从更大的角度来看,如果您的应用程序有许多可移动的部分,需要消耗大量的外部资源,那么您最好使用
Apache-Camel
Spring-Integration
非常可靠的实现来深入研究EIP(企业集成模式)


根据您的描述,您的一次性项目是合理的单一重点项目,因此新框架的学习曲线可能不值得。在这种情况下,只要关注项目的可重用组件,并将它们外部化到核心/助手库中,以达到可重用的目的就足够了

这取决于这些一次性项目中管道工程占多大比例,实际业务逻辑占多大比例。如果你找到了高比例的管道代码,然后考虑Spring Palm,或者特别是如果你正在处理外部存储器,那么考虑一个像Apache CAMEL或Enpring Connect Tuffing代码那样的EIP解决方案,如在任何非业务逻辑特定的情况下,比如:1)如何调度它,2)如何连接到资源,3)如何重试,4)如果它以特定方式失败,我想继续,5)我如何转换为/从数据格式(xml/json/csv),6)我如何监控,7)如何获得通知等…@dimitrisli Gotchya,我删除了我的评论,因为我认为谷歌搜索就足够了,但感谢你的帮助。我不知道该在哪里划清界限,正是这种说法让我怀疑这是否是一种解决办法。现在只有几个项目,它们实际上只是进入数据库,获取一些东西,对这些东西做一些事情,然后要么放回去,要么放在别处。但这可能必然是未来项目的标准。因此,您认为您提到的EIP解决方案值得研究吗?抱歉这么长的评论…这些听起来像是简单的用例,没有太多可移动的部分,因此可能不值得学习EIP框架。在进行过程中,请将重点放在可重用组件上,以促进新项目的生成。我总结了以上几点,得出一个答案:)谢谢。我想编辑一下,但意识到我已经打字太多了。在重读你的评论后,我想我知道你在说什么,但一个答案将有助于总结。因此,根据您的意见/经验,Spring Batch非常适合这种情况,值得一试。如果您在项目中确定了上述任何选项,那么肯定值得一试。不过,我建议在深入到SpringBatch或其他框架之前,首先关注识别可重用组件。