我正在创建一个由groovy bean builder支持的spring批处理(spring boot)。但是,我无法找到以下xml结构的正确语法:
<batch:job-repository/>
更新:豆子。棒极了
beans {
xmlns([ctx: 'http://www.springframework.org/schema/context', batch: 'http://www.springframework.org/schema/batch'])
ctx.'component-scan'('base-package': 'mypackage')
ctx.'annotation-config'()
itemReader(MyItemReader) {}
itemProcessor(MyItemProcessor) {}
itemWriter(FlatFileItemWriter) { ... }
batch.job(id: 'job1') {
batch.step(id: 'step1') {
batch.tasklet {
batch.chunk(
reader: 'itemReader',
writer: 'itemWriter',
processor: 'itemProcessor',
'commit-interval': 1
)
}
}
}
//Option 1: will this work?
//batch.'job-repository'()
//Option 2: all job related beans defined individually, because cannot get <batch:job-repository/> in groovy bean syntax
jobRepository(MapJobRepositoryFactoryBean) {
transactionManager = ref('transactionManager')
}
jobRegistry(MapJobRegistry) { }
jobLauncher(SimpleJobLauncher) {
jobRepository = ref('jobRepository')
taskExecutor = { SyncTaskExecutor executor -> }
}
jobExplorer(JobExplorerFactoryBean) {
dataSource = ref('dataSource')
}
jobOperator(SimpleJobOperator) {
jobLauncher = ref('jobLauncher')
jobRepository = ref('jobRepository')
jobRegistry = ref('jobRegistry')
jobExplorer = ref("jobExplorer")
}
}
我想使用选项1技术,如果我这样做,我会得到“beanName must not empty”错误。我没有使用选项2中的bean,而是它们似乎在工作。
我假设使用选项1,将使用其他定义的bean自动配置jobRepository等。
我为名称空间选项添加了一个Jira票证。然而,当您将注释与Groovy DSL相结合时,您也可以解决它,下面是Spring Boot Batch中的一个示例:
如果您有一个应用程序类,可以使用@EnableBatchProcessing
对其进行注释,以获得请求的行为:
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing
import org.springframework.boot.autoconfigure.EnableAutoConfiguration
import org.springframework.boot.builder.SpringApplicationBuilder
import org.springframework.context.annotation.ComponentScan
@ComponentScan
@EnableAutoConfiguration
@EnableBatchProcessing
public class Application
{
public static void main(String[] args)
{
new SpringApplicationBuilder(Application.class, "appcontext.groovy").run(args)
}
}
然而,您并不是在一个地方拥有所有配置。
我已经开始探索Spring Batch,并遇到了一些基本问题。
这似乎是一个愚蠢的问题。我正在尝试为Spring Batch作业存储库(Spring Batch 2.1.7)配置Oracle10g数据库,我能够使用在core中的org/spring框架/批/core/schema-oracle10g.sql可用的脚本创建表。我还将属性batch.data.source.init设置为false。 在干净的数据库上,我的批处理程序运行良好,成功地创建了所有批处理
我有以下工作要处理在一定的时间间隔或特别的基础上。 作业中的步骤如下: 我也想要用户界面,在那里我可以触发一个特别的基础上的工作,而且我应该能够提供参数从用户界面。 我想用Spring batch来完成这个任务,但它更多的是用于读->处理->写之类的工作。这里,在第一步中,我正在生成由第二步读取的数据。我不确定我是否还可以使用Spring batch来实现这个,或者有更好的方法来实现这个。
我们正试图建立关于如何在大型IT服务中使用Spring Batch的标准,并具有不同的商业利益。 我们可能会有几个属于不同业务领域的批次。我们已经知道其中一些必须从所有批次通用的表中获取一些参数(即Java和COBOL;例如日期参数)。 我们将实现的Spring批处理作业的数量很难评估。没有重写现有COBOL批次的目标,只要有可能,就鼓励连续流程处理。 一些关于概念证明的问题不时出现,但目前几乎没