深入解析SpringBatch适配器

 更新时间:2021年11月04日 09:24:38   作者:境里婆娑  
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

@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适配器执行的目标类和方法

@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适配器内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • ehcache开源缓存框架_动力节点Java学院整理

    ehcache开源缓存框架_动力节点Java学院整理

    Ehcache是现在最流行的纯Java开源缓存框架,这篇文章主要介绍了ehcache框架的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 手动编译并运行Java项目实现过程解析

    手动编译并运行Java项目实现过程解析

    这篇文章主要介绍了手动编译并运行Java项目实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 如何查看JVM使用的默认的垃圾收集器

    如何查看JVM使用的默认的垃圾收集器

    这篇文章主要介绍了如何查看JVM使用的默认的垃圾收集器,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Spring boot 基本部署方式

    Spring boot 基本部署方式

    SpringBoot部署也是非常简单,需要把打包输出的包由jar改为war。具体部署方式大家参考下本文
    2017-08-08
  • JavaWeb登录界面登录失败在同一页面进行提示的解决

    JavaWeb登录界面登录失败在同一页面进行提示的解决

    这篇文章主要介绍了JavaWeb登录界面登录失败在同一页面进行提示的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 一次mybatis连接查询遇到的坑实战记录

    一次mybatis连接查询遇到的坑实战记录

    这篇文章主要给大家介绍了关于一次mybatis连接查询遇到的坑的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • SpringBoot全局配置long转String丢失精度问题解决方案

    SpringBoot全局配置long转String丢失精度问题解决方案

    这篇文章主要介绍了SpringBoot全局配置long转String丢失精度问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • JAVA错误类结果类和分页结果类代码详解

    JAVA错误类结果类和分页结果类代码详解

    这篇文章主要介绍了JAVA错误类结果类和分页结果类代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java获取http和https协议返回的json数据

    Java获取http和https协议返回的json数据

    本篇文章主要介绍了Java获取http和https协议返回的json数据 ,本篇文章提供两个方法,帮助各位如何获取http和https返回的数据。有兴趣的可以了解一下。
    2017-01-01
  • java数据输出打印流PrintStream和PrintWriter面试精讲

    java数据输出打印流PrintStream和PrintWriter面试精讲

    这篇文章主要为大家介绍了java数据输出打印流PrintStream和PrintWriter面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10

最新评论