Попытка отформатировать объект перед записью результата в текстовый файл с использованием Spring Batch, но я не получаю ожидаемого результата. Я хочу использовать формат аннотации API Spring, @NumberFormat
для чисел и @DateTimeFormat
для даты, потому что у меня есть несколько объектов для форматирования, и я не хочу тратить время на создание служб форматирования
Модель:
public class Type_0 {
@NumberFormat(pattern="###,###.###")
private BigDecimal typeEnregistrement= BigDecimal.valueOf(123456789.123);
@DateTimeFormat(pattern = "dd.MM.yyyy")
private Date dateCreationFichier;
@NumberFormat(pattern="###,###.###")
public BigDecimal getTypeEnregistrement() {
return typeEnregistrement;
}
@NumberFormat(pattern="###,###.###")
public void setTypeEnregistrement(BigDecimal typeEnregistrement) {
this.typeEnregistrement = typeEnregistrement;
}
@DateTimeFormat(pattern = "dd.MM.yyyy")
public Date getDateCreationFichier() {
return dateCreationFichier;
}
@DateTimeFormat(pattern = "dd.MM.yyyy")
public void setDateCreationFichier(Date dateCreationFichier) {
this.dateCreationFichier = dateCreationFichier;
}
@Override
public String toString() {
return typeEnregistrement+""+typeEmetteur+numEmetteur+"
"+TypeDest+numDest+dateCreationFichier; }
}
Автор:
@Bean
public FlatFileItemWriter<Type_0> writer() {
FlatFileItemWriter<Type_0> writer = new FlatFileItemWriter<Type_0>();
writer.setResource(new FileSystemResource("c:/upload/b2.txt"));
DelimitedLineAggregator<Type_0> delLineAgg = new DelimitedLineAggregator<>();
delLineAgg.setDelimiter(";");
writer.setLineAggregator(delLineAgg);
return writer;
}
Процессор:
@Override
public Type_0 process(final Type_0 item) throws Exception {
DefaultFormattingConversionService conversionService =
new DefaultFormattingConversionService(false);
conversionService.addFormatterForFieldAnnotation(
new NumberFormatAnnotationFormatterFactory());
Type_0 t0=new Type_0();
t0=item;
DataBinder dataBinder = new DataBinder(t0);
dataBinder.setConversionService(conversionService);
return t0;
}
Ожидаемый результат: 123,456,789,123 0000125 24.04.2007
но яиметь в выходном файле: 123456789.123 0000125 2007-04-24