У меня весенняя пакетная работа.Существует шаг, который вызывает метод чтения.
STEP
@Bean public Step myStep(FlatFileItemWriter<String> writer, Processor
processor, @Value("${com.tableName}") String myTableName) {
return stepBuilderFactory.get("step1")
.<MyBean, String> chunk(this.chuckSize)
.reader(reader(myTableName, this.myRowMapper))
.processor(processor)
.writer(writer)
.build();
}
READER Работает
@Bean
public <T> JdbcCursorItemReader<T> reader(@Value("${com.tableName}") String tableName, RowMapper<T> rowMapper) {
JdbcCursorItemReader<T> jdbcCursorItemReader = new JdbcCursorItemReader<>();
String query = "select * from " + tableName;
jdbcCursorItemReader.setDataSource(dataSource);
jdbcCursorItemReader.setSql(query);
jdbcCursorItemReader.setRowMapper(rowMapper);
return jdbcCursorItemReader;
}
Я хочу, чтобы мой читатель использовал динамические имена таблиц.Таким образом, я изменил читателя, как указано ниже.
@Bean
public <T> JdbcCursorItemReader<T> reader(String tableName, RowMapper<T> rowMapper) {
JdbcCursorItemReader<T> jdbcCursorItemReader = new JdbcCursorItemReader<>();
String query = "select * from " + tableName;
jdbcCursorItemReader.setDataSource(dataSource);
jdbcCursorItemReader.setSql(query);
jdbcCursorItemReader.setRowMapper(rowMapper);
return jdbcCursorItemReader;
}
Это приводит к следующей ошибке.
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of method reader in com.walgreens.oracleextractionbatch.OracleExtractionJobConfiguration required a bean of type 'java.lang.String' that could not be found.
Action:
Consider defining a bean of type 'java.lang.String' in your configuration.
Я пробовал так много обходных путей после интенсивного поиска в Google.Но я думаю, что мне не хватает чего-то простогоПожалуйста помоги.ТИА