@Target(value=METHOD) @Retention(value=RUNTIME) @Documented public @interface CsvPreRead
レコードの読み込み前に、このアノテーションを付与した任意のメソッドが実行されます。
引数のタイプ | 説明 |
---|---|
CsvContext |
CSVの1レコード分の情報。 |
CsvBindingErrors |
CSVの1レコード分のエラー情報。 |
Class [] |
グループのクラス情報(配列)。 |
処理対象のBeanクラス。 | 処理対象のBeanオブジェクト。 |
実装方法として、JavaBeanに直接処理を実装する方法と、リスナークラスを指定して別のクラスで実装する方法の2種類があります。
任意のメソッドにアノテーションを付与します。
@CsvBean
public class SampleCsv {
@CsvColumn(number=1)
private String name;
@CsvPreRead
public void onPreRead(CsvContext csvContext, CsvBindingErrors bindingErrors) {
//任意の処理の実装
}
// getter/setterは省略
}
POJOであるリスナークラスの任意のメソッドにアノテーションを付与します。
Spring Frameworkと連携している場合、リスナークラスをSpringBeanとして登録しているとでインジェクションできます。
@CsvBean(listeners=SampleListener.class) // リスナークラスの指定
public class SampleCsv {
@CsvColumn(number=1)
private String name;
// getter/setterは省略
}
// SampleCsvに対するリスナー
public static class SampleListener {
@CsvPreRead
public void onPreRead(SampleCsv record, CsvContext csvContext, CsvBindingErrors bindingErrors) {
//任意の処理の実装
}
}
Copyright © 2022 mygreen. All rights reserved.