在项目中的具体应用
抽象类
public abstract class TemplateWriter<T> implements ItemWriter<T> { protected static final Logger logger = LoggerFactory.getLogger(TemplateWriter.class); @Override public void write(List<? extends T> list) {//模板方法 String className = getClass().getSimpleName(); logger.info("{} write begin.", className); long beginTime = System.currentTimeMillis(); doWrite(list); logger.info("{} write end,costs {}ms.", className, System.currentTimeMillis() - beginTime); } protected abstract void doWrite(List<? extends T> list);//基本方法 }
子类
public class IPlanSettleWriter extends TemplateWriter<IPlanSettleAcount> {
@Autowired
private IplanSettleService iplanSettleService;
@Override
protected void doWrite(List<? extends IPlanSettleAcount> iplanSettleAcounts) {//子类实现基本方法
iplanSettleAcounts.forEach(iplanSettleService::iplanSettle);
}
}