可以在运行时向ClassifierCompositeItemWriter添加更多ItemWriter

时间:2018-06-27 15:50:09

标签: spring-batch

ClassifierCompositeItemWriter允许我们基于某些值选择在运行时使用哪个ItemWriter。例如。

public class CustomerClassifier implements
    Classifier<Customer, ItemWriter<Customer>> {
    private ItemWriter<Customer> fileItemWriter;
    private ItemWriter<Customer> jdbcItemWriter;
    @Override
    public ItemWriter<Customer> classify(Customer customer) {
        if(customer.getState().matches("^[A-M].*")) {
            return fileItemWriter;
        } else {
            return jdbcItemWriter;
        }
    }
    public void setFileItemWriter(ItemWriter<Customer> fileItemWriter) {
        this.fileItemWriter = fileItemWriter;
    }
    public void setJdbcItemWriter(ItemWriter<Customer> jdbcItemWriter) {
        this.jdbcItemWriter = jdbcItemWriter;
    }
}

这里可能的ItemWriters的决定都是在编译时完成的。

是否可以在运行时添加更多ItemWriter?

0 个答案:

没有答案