當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBatch适配器详解
生活随笔
收集整理的這篇文章主要介紹了
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 {@Autowiredprivate JobBuilderFactory jobBuilderFactory;@Autowiredprivate StepBuilderFactory stepBuilderFactory;@Autowiredpublic PeopleService peopleService;@Beanpublic Job taskletAdapterJob() {return jobBuilderFactory.get("taskletAdapterJob").start(taskletAdapterStep()).build();}@Beanpublic Step taskletAdapterStep() {return stepBuilderFactory.get("taskletAdapterStep").tasklet(methodInvokingTaskletAdapter()).build();}@Beanpublic 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适配器详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NavicatPremium连接MySQ
- 下一篇: SpringBatch批处理框架入门(一