ItemReader class return 中的 SpringBatch read() 函数类型是 String 并且想要 return FlatFileItemReader<String> ,我应该怎么做?
SpringBatch read() function in ItemReader class return type is String and Want to return FlatFileItemReader<String> , How should i Do it?
我的 Springbatch 配置 class 有以下工作:
public Job job(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory) {
Step step = stepBuilderFactory.get("sampleSetp")
.<String, String>chunk(10)
.reader(new Reader())
.writer(new Writer())
.build();
}
而我的 Reader class 是:
public class Reader implements ItemReader<String> {
@Override
public String read() {
FlatFileItemReader<String> reader = new FlatFileItemReader<String>();
reader.setResource(someResource);
reader.setLineMapper(lineMapper());
**return reader; //This should be string, but i have FlatFileItemReader<String> type.**
}
}
我正在 reader(FlatFileItemReader) 上做一些工作,想 return 完成这个 reader 但 read() return 类型是字符串。
我应该如何将此 reader 发送到 BathConfig 中的作业?
注意:如果我在 springConfig 文件中执行此 FlatFileItemReader 处理并将其传递给那里的作业,那么它才能正常工作。
例如:
Step step = stepBuilderFactory.get("sampleSetp")
.<String, String>chunk(10)
.reader(flatFileReader())
.write()
.build();
其中 flatFileReader() 是:
public FlatFileItemReader<String> flatFileReader(){
...
return FlatFileItemReader<String> type
}
SpringBatch read() function in ItemReader class return type is String and Want to return FlatFileItemReader , How should i Do it?
read
方法应该 return 实际项目(在您的情况下是一个字符串)而不是另一个 reader。如果你想要一个委托给 FlatFileItemReader
的自定义 reader,你可以这样做:
public class Reader implements ItemReader<String> {
private FlatFileItemReader<String> delegate;
public Reader(FlatFileItemReader<String> delegate) {
this.delegate = delegate;
}
@Override
public String read() {
return delegate.read();
}
}
我的 Springbatch 配置 class 有以下工作:
public Job job(JobBuilderFactory jobBuilderFactory, StepBuilderFactory stepBuilderFactory) {
Step step = stepBuilderFactory.get("sampleSetp")
.<String, String>chunk(10)
.reader(new Reader())
.writer(new Writer())
.build();
}
而我的 Reader class 是:
public class Reader implements ItemReader<String> {
@Override
public String read() {
FlatFileItemReader<String> reader = new FlatFileItemReader<String>();
reader.setResource(someResource);
reader.setLineMapper(lineMapper());
**return reader; //This should be string, but i have FlatFileItemReader<String> type.**
}
}
我正在 reader(FlatFileItemReader) 上做一些工作,想 return 完成这个 reader 但 read() return 类型是字符串。
我应该如何将此 reader 发送到 BathConfig 中的作业?
注意:如果我在 springConfig 文件中执行此 FlatFileItemReader 处理并将其传递给那里的作业,那么它才能正常工作。 例如:
Step step = stepBuilderFactory.get("sampleSetp")
.<String, String>chunk(10)
.reader(flatFileReader())
.write()
.build();
其中 flatFileReader() 是:
public FlatFileItemReader<String> flatFileReader(){
...
return FlatFileItemReader<String> type
}
SpringBatch read() function in ItemReader class return type is String and Want to return FlatFileItemReader , How should i Do it?
read
方法应该 return 实际项目(在您的情况下是一个字符串)而不是另一个 reader。如果你想要一个委托给 FlatFileItemReader
的自定义 reader,你可以这样做:
public class Reader implements ItemReader<String> {
private FlatFileItemReader<String> delegate;
public Reader(FlatFileItemReader<String> delegate) {
this.delegate = delegate;
}
@Override
public String read() {
return delegate.read();
}
}