Why spring batch jdbcbatchitemwriter afterpropertiesset repeat trigger twice?
@Autowired
TestWriter write;
public Step startStep(StepBuilderFactory stepBuilders) {
return stepBuilders.get("step")
.listener(new StepResultListener())
.<Map, Map>chunk(chunkSize)
.reader(....)
.processor(....)
.writer(write)
.faultTolerant()
.build();
}
and TestWriter.java code is
@Bean(name = "write")
@StepScope
public JdbcBatchItemWriter<Map> write() {
.....
JdbcBatchItemWriter<Map> itemWriter = new JdbcBatchItemWriter<>();
itemWriter.setDataSource(dataSource);
itemWriter.setSql("insert into student (id,name) values (?,?) ");
ItemPreparedStatementSetter setter = new ItemPreparedStatementSetter() {
@Override
public void setValues(Object o, PreparedStatement preparedStatement) throws SQLException {
......
}
};
itemWriter.setItemPreparedStatementSetter(setter);
itemWriter.afterPropertiesSet();
return itemWriter;
}
I debug in JdbcBatchItemWriter afterpropertiesSet(), I found this function will call twice.
Please tell me why?
I want afterpropertiesSet()
this function only call one.