山一程--软件开发--Spring batch 学习实践记录
目的:企业级数据处理技术,Hadoop 等系统成本高,结合实际情况,采用 Spring batch 技术处理大量数据.
粒度为job的每个步骤,抽象化数据读取,写入,自定义 validation, 及 filter , 结合mysql 持久化各项数据审计.
失败作业定制化处理。
1. 参考:
《Spring batch 权威指南》
2. 记录
2022-12-31 18:27:51
1. 自定义 validation,
1.自定义实现类, 注意状态的持久.
public class UniqueLastNameValidator extends ItemStreamSupport implements Validator<Customer> { private Set<String> lastNames = new HashSet<>(); @Override public void validate(Customer customer) throws ValidationException { if(lastNames.contains(customer.getLastName())){ throw new ValidationException("duplicate last name was found: " + customer.getLastName()); } this.lastNames.add(customer.getLastName()); } @Override public void open(ExecutionContext context){ String lastNameKey = getExecutionContextKey("lastNames"); if(context.containsKey(lastNameKey)){ this.lastNames = (Set<String>)context.get(lastNameKey); } } @Override public void update(ExecutionContext context){ context.put(getExecutionContextKey("lastNames"),this.lastNames); } }
Bean




浙公网安备 33010602011771号