问:什么是Spring Batch?
答:
Spring batch是用于创建批处理应用程序(执行一系列作业)的开源轻量级平台。
问:什么是批处理架构?
答:
作业具有完整的批处理过程,并且作业中包含一个或多个步骤。设置为以JSL(作业规范语言)序列运行的作业。
问:什么是工作?
答:
作业由许多步骤组成,每个步骤都是READ-PROCESS-WRITE任务或单个操作任务(tasklet)。
问:如何在Spring Batch中配置作业?
答:
我们可以通过多种方式配置Sprin批处理作业。我们在这里使用生成器抽象方法来调用作业。作业需要JobRepository来配置作业。如果您在下面看到Job,则需要执行三个步骤来加载笔记,加载任务并处理这些任务。
@Bean
public Job employeeJob() {
return this.jobBuilderFactory.get("notesJob")
.start(LoadNotes())
.next(LoadTasks())
.next(processTasks())
.end()
.build();
}
问:什么是Spring Batch Admin?
答:
管理员具有基于Web的UI和spring批处理控制台。它是一个基于Web构建的应用程序,基于Spring MVC开源。
问:在哪里使用批处理?
答:
它通常用于执行大量数据的企业应用程序中。例如,大数据在企业应用程序中定期进行测试。
问:什么是工作步骤?
答:
Spring Batch Step独立地是工作的一部分。每个步骤都包括ItemReader,ItemWriter和ItemProcessor。
问:什么是ItemReader?
答:
ItemReader从Spring批处理中的源读取数据。
问:什么是ItemWriter?
答:
ItemWriter将数据写入Spring批处理中的目标。
问:什么是ItemProcessor?
答:
使用itemReader读取输入数据之后,ItemProcessor对该输入数据应用业务逻辑,然后使用itemWriter写入文件/数据库。
问:什么是Spring Batch侦听器?
答:
侦听器是帮助拦截作业或允许用户执行某些功能的步骤执行的实体。
问:Step,Chunk和Tasklet有什么区别?
答:
Spring批处理读取输入,根据业务逻辑进行处理,然后将输出的数据块聚合到目标(文件或数据库),最后将其写出。这是执行步骤的最常见方法。
问:Spring Batch中的执行上下文是什么?
答:
如果您想重新启动批处理运行以解决诸如致命异常之类的错误,则Spring Batch会继续存储的ExecutionContext。
问:Spring Batch中的StepScope是什么?
答:
作用域为StepScope的对象,对于这些对象,Spring Batch将使用spring容器为每个步骤执行创建该对象的新实例。
问:Spring Batch中的作业存储库是什么?
答:
作业存储库用于在作业执行期间保留所有批处理元数据。数据源可以配置为存储作业相关的元数据。
问:Spring Batch中的步骤分区是什么?
答:
Spring批处理可以在单进程作业中处理,但是要拥有多进程作业,我们可以使用“对步骤进行分区”。在Spring Batch步骤分区中,Step被分为多个子步骤,这些子步骤可用作远程实例或用作本地执行线程。
问:什么是Spring批处理作业启动器?
答:
Spring Batch作业启动器是用于运行作业的界面,它使用带有两个参数的run方法。例:
JobLauncher jobLauncher = context.getBean(JobLauncher.class);
Job testJob = context.getBean(TestJob.class);
jobLauncher.run(
testJob,
new JobParametersBuilder()
.addString("inputFile", "file:./notes.txt")
.addDate("date", new Date())
.toJobParameters()
);
问:Spring Batch中的远程分块是什么?
答:
在春季批处理远程分块中,Master Step读取日期并将其传递给slave进行处理。
问:Spring Batch中的远程分区和远程分块有什么区别?
答:
两种分区都是基于主从的过程,但是下面是它们之间的区别。
问:Spring Batch中的跳过限制是什么?
答:
一旦达到最大跳过限制,Spring批处理将跳过该项目。会根据春季批次跳过限制自动使批次作业失败。
问:Spring Batch中的JobBuilderFactory是什么?
答:
它创建作业生成器并初始化作业存储库
JobBuilderFactory(JobRepository jobRepository)