SpringBatch - Validate, 竟然敢摸清華女學生
前言
清華美院一名女學生稱男同學通過包的掩護摸自己的 PP 並將男同學的身份資訊公開到社交媒體, 導致男同學險些社會性死亡, 後來查了監控才證明了男同學的清白.
Spring Batch 可校驗性
我們經常需要大量的讀取資料, 其中有些資料可能不符合我們的預期, 比如從介面讀了個使用者列表, 年齡欄位存在負數, 這種可能就需要中斷程式或者跳過處理, 接著處理下一條
Spring Batch 可校驗性例子
reader 和 writer 都是原來的, 我們重新寫個 processor:
@Component
public class QingGirlProcessor implements ItemProcessor<Girl, String> {
@Override
public String process(Girl girl) throws Exception {
return girl.getName() + "說被摸了PP";
}
}
使用組合將驗證的 processor 和上面的業務的 processor 串聯起來:
@Configuration
public class ProcessorConfig {
@Autowired
private QingGirlProcessor qingGirlProcessor;
@Bean
public BeanValidatingItemProcessor<Girl> girlBeanValidatingItemProcessor() throws Exception {
BeanValidatingItemProcessor<Girl> validator = new BeanValidatingItemProcessor<>();
validator.setFilter(true);
validator.afterPropertiesSet();
return validator;
}
@Bean
public ItemProcessor<Girl, String> girlStringItemProcessor() throws Exception {
List<ItemProcessor> list = new ArrayList<>();
list.add(girlBeanValidatingItemProcessor());
list.add(qingGirlProcessor);
CompositeItemProcessor compositeItemProcessor =
new CompositeItemProcessor<>();
compositeItemProcessor.setDelegates(list);
compositeItemProcessor.afterPropertiesSet();
return compositeItemProcessor;
}
}
任務配置:
final String JOB_NAME = "demo4QingGirl";
List<Girl> girlList = new ArrayList<>();
for (int i = 0; i < 10; i++) {
girlList.add(i % 2 == 0 ? new Girl() : new Girl("唐靖"));
}
final ListReader<Girl> reader = new ListReader<>(girlList);
final Job girlJob = jobBuilderFactory.get(JOB_NAME)
.flow(stepBuilderFactory.get(JOB_NAME)
.<Girl, String>chunk(2).reader(reader)
.processor(girlStringItemProcessor).writer(printWriter).build())
.end().build();
jobLauncher.run(girlJob, new JobParametersBuilder()
.addDate("start_time", new Date()).toJobParameters());
輸出:
唐靖說被摸了PP
唐靖說被摸了PP
唐靖說被摸了PP
唐靖說被摸了PP
唐靖說被摸了PP
總共十個只輸出了五個這就是我們的 Girl 類的作用了:
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Girl {
@NotBlank
private String name;
}
這樣就能保證只處理符合預期的資料了
微信公眾號:
相關文章
- 30 歲的女程式設計師:敢問路在何方?程式設計師
- SpringBatch批量處理策略SpringBAT
- 一個資料庫死鎖竟然被測試發現了,這你敢信資料庫
- validate
- SpringBatch基本的批處理指導原則SpringBAT
- jQuery Validate highlight()jQuery
- jQuery Validate addMethod()jQuery
- jQuery Validate errorPlacement()jQueryError
- jQuery Validate success()jQuery
- jQuery Validate unhighlight()jQuery
- 女科學家流失之殤
- 那個敢叫板蘋果的華米,2019的智慧穿戴財報如何?蘋果
- [LeetCode] Validate IP AddressLeetCode
- jQuery Validate optional()方法jQuery
- 日本13歲女學生被警方調查:因釋出 JavaScript 無限迴圈程式碼JavaScript
- async-validator 原始碼學習筆記(六):validate 方法原始碼筆記
- 突發!中建八局華為人才公寓專案發生塔吊倒塌!據傳23歲女塔司死亡!
- 《自然·代謝》:多年廢物變成寶!華科同濟醫學院團隊發現,腸菌產生的氨竟然可以改善抑鬱症狀
- 2019女生節發朋友圈的經典勵志說說 三七女生節一句話的勵志說說
- 這座暗藏玄機的“智慧島”,竟然出自華為之手
- Vue Element校驗validateVue
- jQuery Validate的format()用法jQueryORM
- 肇篩敢滋廝
- phper:敢問路在何方PHP
- 腐女吧,腐女網站網站
- 如何在一週內快速摸清一個行業?行業
- 女大學生如何學程式設計(第九步)程式設計
- 傳播學者眼中的乙女遊戲遊戲
- 普華永道:2019年女性就業指數報告就業
- 華碩膝上型電腦哪個系列最好 大學生華碩筆記本推薦筆記
- 華碩和聯想哪個筆記本好 大學生買聯想還是華碩筆記
- Validator | validate 驗證規則
- jQuery Validate簡單介紹jQuery
- 起訴書!慕課網你敢抄襲,我就敢起訴你!
- 華東政法大學:2018中國大學生網路生態和消費行為報告(附下載)
- 華為雲學院給大學生的獻禮:輕鬆玩轉微認證
- 女大學生如何學程式設計(第七步)程式設計
- 培養出兒子清華女兒北大的家庭十條家規