凡ミスの記録。
lombokを使用して以下のコードを実行したところ、実行時エラーになった。
@Data
@AllArgsConstructor
public class Person {
...
Caused by: java.lang.InstantiationException: kagamihoge.springbatchsample.Person
at java.base/java.lang.Class.newInstance(Class.java:571) ~[na:na]
at org.springframework.batch.item.file.mapping.BeanWrapperFieldSetMapper.getBean(BeanWrapperFieldSetMapper.java:248) ~[spring-batch-infrastructure-4.2.1.RELEASE.jar:4.2.1.RELEASE]
... 53 common frames omitted
Caused by: java.lang.NoSuchMethodException: kagamihoge.springbatchsample.Person.<init>()
at java.base/java.lang.Class.getConstructor0(Class.java:3350) ~[na:na]
at java.base/java.lang.Class.newInstance(Class.java:556) ~[na:na]
... 54 common frames omitted
原因は、引数無しのデフォルトコンストラクタが無いのでリフレクションによるインスタンス生成に失敗していた。
というわけで、lombokで引数無しコンストラクタも生成するように指定した。
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Person {
..