SpringBatch适配器详解

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

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

(0)

相关推荐

  • 详解Spring Batch 轻量级批处理框架实践

    实践内容 从 MariaDB 一张表内读 10 万条记录,经处理后写到 MongoDB . 具体实现 1.新建 Spring Boot 应用,依赖如下: <!-- Web 应用 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> &

  • Spring Batch批处理框架使用解析

    这篇文章主要介绍了Spring Batch批处理框架使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用Spring Batch做为批处理框架,可以完成常规的数据量不是特别大的离线计算. 现在写一个简单的入门版示例. 这里默认大家已经掌握了Spring Batch的基本知识,示例只是为了快速上手实践 目标1:程序随机生成字符串,经过Spring Batch后,统一在字符串后加入"----PROCESSED",并输出 目标2:程

  • 详解Spring batch 入门学习教程(附源码)

    Spring batch 是一个开源的批处理框架.执行一系列的任务. 在 spring batch 中 一个job 是由许多 step 组成的.而每一个 step  又是由 READ-PROCESS-WRITE task或者 单个 task 组成. 1. "READ-PROCESS-WRITE" 处理,根据字面意思理解就可以: READ 就是从资源文件里面读取数据,比如从xml文件,csv文件,数据库中读取数据. PROCESS 就是处理读取的数据 WRITE 就是将处理过的数据写入到

  • spring batch使用reader读数据的内存容量问题详解

    概述 本篇博客是记录使用spring batch做数据迁移时时遇到的一个关键问题:数据迁移量大时如何保证内存.当我们在使用spring batch时,我们必须配置三个东西: reader,processor,和writer.其中,reader用于从数据库中读数据,当数据量较小时,reader的逻辑不会对内存带来太多压力,但是当我们要去读的数据量非常大的时候,我们就不得不考虑内存等方面的问题,因为若数据量非常大,内存,执行时间等等都会受到影响.关于spring batch的基础知识和介绍请参考这篇

  • springbatch的封装与使用实例详解

    Spring Batch官网介绍: A lightweight, comprehensive batch framework designed to enable the development of robust batch applications vital for the daily operations of enterprise systems.(一款轻量的.全面的批处理框架,用于开发强大的日常运营的企业级批处理应用程序.) springbatch 主要实现批量数据的处理,我对bat

  • Spring Batch 入门示例

    目录 1.Spring Batch框架工作原理 2.示例概述 3. Maven配置 4. Spring Boot 配置 5. 创建实体模型 6. 配置 Spring Batch Job 7. 处理数据 8.测试Spring Batch 示例 我将向您展示如何使用Spring Boot创建一个的Spring Batch的Hello World示例. (循序渐进) 因此,如果您是Spring Batch的初学者,您一定会喜欢本指南. 准备好了吗? 如果您想了解更多关于Spring Batch的信息,

  • SpringBatch适配器详解

    目录 一.SpringBatch适配器 二.SpringBatch适配器实战(Tasklet举例) 一.SpringBatch适配器 1.SpringBatch分别有读(reader).处理(processor).写(writer).tasklet处理器. 读适配器:ItemReaderAdapter 处理适配器:ItemProcessorAdapter 写适配器:ItemWriterAdapter tasklet适配器:MethodInvokingTaskletAdapter 2.Spring

  • Android BaseAdapter适配器详解用法

    目录 ListView和GridView 显示与缓存机制 BaseAdapter 使用演示 布局 ListView 所加条目 创建数据源 JavaBean存放数据 初始化数据源 设置条目的单机和长按事件 创建BaseAdapter及设置缓存 设置适配器 完整主代码 演示 ListView和GridView ListView,列表视图,是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView.是一个以垂直方式在项目中显示View视图的列表. GridView,网格试

  • C++:函数对象,STL提供的函数对象,函数适配器详解

    目录 1 函数对象 2 STL提供的函数对象 3 函数适配器 总结 1 函数对象 1.函数对象是行为类似函数的对象.一个类对象,表现出一个函数的特征,即通过对象名+(参数列表)的方式使用一个类对象. 2.使用STL中提供的或自定义的迭代器和**函数对象,**配合STL的算法,组合出各种各样的功能. 3.通过函数对象而不使用函数指针,可以增加通用性,提高效率. 4.函数对象概念:泛化的函数 ①将普通函数作为函数对象:传递函数名 #include <iostream> #include <n

  • 深入解析SpringBatch适配器

    目录 一.SpringBatch适配器 二.SpringBatch适配器实战(Tasklet举例) 一.SpringBatch适配器 1.SpringBatch分别有读(reader).处理(processor).写(writer).tasklet处理器. 读适配器:ItemReaderAdapter 处理适配器:ItemProcessorAdapter 写适配器:ItemWriterAdapter tasklet适配器:MethodInvokingTaskletAdapter 2.Spring

  • 详解xamarin Android 实现ListView万能适配器

    详解xamarin Android 实现ListView万能适配器 早些时候接触xamarin Android 的列表,写了很多ListView的Adapter,建一个ListView就写一个Adapter,每一个Adapter里面还有去写一个ViewHolder的类来优化,自从看了hongyang博客的listview万能适配器的文章,学习良多,所以就写篇关于xamarin android ListView通用适配器的文章. 本章主要分为以下三点: 打造通用的ViewHolder优化ListV

  • SpringBatch从入门到精通之StepScope作用域和用法详解

    目录 1.StepSope 是一种scope 2.StepSope 是一种自定义step 3.如何使用.@Value是支持spel表达式的 3.1 大部分场景是Spel 表达式.在底层reader/process/writer 中使用@Value获取jobParamter/stepContext/jobContext 3.2 SpEL引用bean 3.3 系统属性 3.4 运算符号 4.可能遇到问题 5.StepScope原理 6.自定义一个scope 1.StepSope 是一种scope 在

  • Android SimpleAdapter适配器使用详解

    Android SimpleAdapter使用详解 HolderAdapter背景 Android的AdapterView用的比较多,ListView,GridView,Spinner等,原生的BaseAdapter对ViewHolder没有支持,每次都要,定义内部类,inflater根布局,对item内部view设置clicklistener并转发到adapter的调用者等.写的次数多了感觉很繁琐,于是写了个简单的封装,简化Adapter的编写, 仓库连接http://git.oschina.

  • C++ set的使用方法详解

    C++ set的使用方法详解 set也是STL中比较常见的容器.set集合容器实现了红黑树的平衡二叉检索树的数据结构,它会自动调整二叉树的排列,把元素放到适当的位置.set容器所包含的元素的值是唯一的,集合中的元素按一定的顺序排列. 我们构造set集合的目的是为了快速的检索,不可直接去修改键值. set的一些常见操作: begin() 返回指向第一个元素的迭代器 clear() 清除所有元素 count() 返回某个值元素的个数 empty() 如果集合为空,返回true(真) end() 返回

  • Windows WMIC命令使用详解(附实例)

    执行"wmic"命令启动WMIC命令行环境.这个命令可以在XP或 .NET Server的标准命令行解释器(cmd.exe).Telnet会话或"运行"对话框中执行.这些启动方法可以在本地使用,也可以通过.NET Server终端服务会话使用. 第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符.在WMIC命令行提示符上,命令以交互的方式执行. wimic的运行方式可以有两种法: 1.搞入wimic进入后输入命令运行,键入w

随机推荐