深入解析SpringBatch适配器

网友投稿 624 2022-11-25

深入解析SpringBatch适配器

深入解析SpringBatch适配器

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

一、SpringBatch适配器

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

读适配器:ItemReaderAdapter

处理适配器:ItemProcessorAdapter

写适配器:ItemWriterAdapter

tasklet适配器:MethodInvokingTaskletAdapter

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

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

public Object targetObject (目标对象,将要调GYOzTvuI用的实例

public String targetMethod(目标方法,将要在实例上调用的方法)

public Object[] arguments(配置选型,用于提供一组数组类型参数)

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

演示MethodInvokingTaskletAdapter适配器

1、创建Job配置TaskletAdapterConfiguration

@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")

GYOzTvuI .tasklet(methodInvokingTaskletAdapter())

.build();

}

@Bean

public MethodInvokingTaskletAdapter methodInvokingTaskletAdapter() {

MethodInvokingTaskletAdapter adapter = new MethodInvokingTaskletAdapter();

adapter.setTargetObject(peopleService);

adapter.setTargetMethod("upperCase");

adapter.setAGYOzTvuIrguments(new Object[]{new People("lee","10","北京","1233")});

return adapter;

}

}

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

@Service

public class PeopleService {

public People upperCase(People people) {

People p = new People();

p.setName(people.getName().toUpperCase(Locale.ROOT));

p.setAdress(people.getAdress().toUpperCaseGYOzTvuI(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、执行结果如图所示:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:安全渗透测试笔记-----安全漏洞披露方式与安全漏洞公共资源库
下一篇:【playwright】使用playwright实现拖动功能
相关文章

 发表评论

暂时没有评论,来抢沙发吧~