服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - 深入解析SpringBatch适配器

深入解析SpringBatch适配器

2022-03-10 13:47境里婆娑 Java教程

Spring Batch是Spring的一个子项目,使用Java语言并基于Spring框架为基础开发,使得已经使用 Spring 框架的开发者或者企业更容易访问和利用企业服务,本文给大家介绍SpringBatch适配器的相关知识,感兴趣的朋友一起看看吧

一、SpringBatch适配器

1、SpringBatch分别有读(reader)、处理(processor)、写(writer)、tasklet处理器。

  • 读适配器:ItemReaderAdapter
  • 处理适配器:ItemProcessorAdapter
  • 写适配器:ItemWriterAdapter
  • tasklet适配器:MethodInvokingTaskletAdapter

2、SpringBatch之所以给我们开这么多适配器原因是让我们把既有的服务作为参数传到适配器里面,避免开发重复代码。不得不说SpringBatch开发人员想的真周到。

3、SpringBatch适配器都有三个公共的方法:

  • public Object targetObject (目标对象,将要调用的实例)
  • public String targetMethod(目标方法,将要在实例上调用的方法)
  • public Object[] arguments(配置选型,用于提供一组数组类型参数)

二、SpringBatch适配器实战(Tasklet举例)

演示MethodInvokingTaskletAdapter适配器

1、创建Job配置TaskletAdapterConfiguration

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
@Configuration
@EnableBatchProcessing
public class TaskletAdapterConfiguration {
 
    @Autowired
    private JobBuilderFactory jobBuilderFactory;
 
    @Autowired
    private StepBuilderFactory stepBuilderFactory;
 
    @Autowired
    public PeopleService peopleService;
 
    @Bean
    public Job taskletAdapterJob() {
        return jobBuilderFactory.get("taskletAdapterJob")
                .start(taskletAdapterStep())
                .build();
    }
 
    @Bean
    public Step taskletAdapterStep() {
        return stepBuilderFactory.get("taskletAdapterStep")
                .tasklet(methodInvokingTaskletAdapter())
                .build();
    }
 
    @Bean
    public MethodInvokingTaskletAdapter methodInvokingTaskletAdapter() {
        MethodInvokingTaskletAdapter adapter = new MethodInvokingTaskletAdapter();
        adapter.setTargetObject(peopleService);
        adapter.setTargetMethod("upperCase");
        adapter.setArguments(new Object[]{new People("lee","10","北京","1233")});
        return adapter;
    }
 
}

2、Tasklet适配器执行的目标类和方法

?
1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public class PeopleService {
 
    public People upperCase(People people) {
         People p = new People();
         p.setName(people.getName().toUpperCase(Locale.ROOT));
         p.setAdress(people.getAdress().toUpperCase(Locale.ROOT));
         p.setAge(people.getAge());
         p.setIdCard(people.getIdCard());
        System.out.println("p:" + p);
         return p;
    }
}

3、适配器执行目标方法一定要先看看有没有参数,如果有参数一定要把此方法(setArguments)设置上,否则会报"No matching arguments found for method"异常

4、执行结果如图所示:

深入解析SpringBatch适配器

到此这篇关于SpringBatch适配器详解的文章就介绍到这了,更多相关SpringBatch适配器内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/TreeShu321/article/details/121068384

延伸 · 阅读

精彩推荐