我遵循了Spring Batch 文档,该文档有效并且足够简单和平庸,但仍然无法弄清楚如何应用相同的技术从外部 API 获取 JSON 数据。据我了解,我必须使用JsonItemReaderBuilder并定义reader方法来返回实例,JsonItemReader如下所示:
@Configuration
@EnableBatchProcessing
public class BatchConfiguration {
@Autowired
public JobBuilderFactory jobBuilderFactory;
@Autowired
public StepBuilderFactory stepBuilderFactory;
@Bean
public JsonItemReader<Person> reader() {
return new JsonItemReaderBuilder<Person>()
.name("personItemReader")
.build();
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是如何替换.resource(new ClassPathResource("sample-data.csv"))上面示例中仅读取 CSV 文件的行?我想我必须传入 JSON 数据作为InputStream实例或类似的东西?我应该传入什么样的资源?谢谢。
适用JsonItemReader于任何org.springframework.core.io.Resource实施。因此,就您的情况而言,您可以使用org.springframework.core.io.UrlResource. 这是一个简单的例子:
@Bean
public JsonItemReader<Person> reader() throws Exception {
URL resource = new URL("http/url/to/file/persons.json");
return new JsonItemReaderBuilder<Person>()
.name("personItemReader")
.resource(new UrlResource(resource))
.jsonObjectReader(new JacksonJsonObjectReader<>(Person.class))
.build();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2207 次 |
| 最近记录: |