Я создаю бобовый процессор и устанавливаю для setStrictHeaderValidationEnabled значение true.Теперь мои CsvParserSettings потребляют этот компонент EJB, который, в свою очередь, используется CSVRoutines.Но при переборе csvroutines процессор бина не проверяет заголовки, и последующие строки также преобразуются в бины для файлов с недопустимыми заголовками
Пример кода -
final BeanProcessor<TestBean> rowProcessor = new BeanProcessor<TestBean>(TestBean.class) {
@Override
public void beanProcessed(TestBean bean, ParsingContext context) {
}
};
rowProcessor.setStrictHeaderValidationEnabled(true);
final CsvParserSettings parserSettings = new CsvParserSettings();
parserSettings.setProcessor(rowProcessor);
parserSettings.setHeaderExtractionEnabled(true);
parserSettings.getFormat().setDelimiter(',');
CsvRoutines routines = new CsvRoutines(parserSettings);
for(TestBean bean : routines.iterate(TestBean.class, inputFile, StandardCharsets.UTF_8)) {
try {
System.out.println(OBJECT_MAPPER.writeValueAsString(bean));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
Примечание: TestBean использует @Parsedаннотация однозначности для установки имен столбцов.