[SPRING] Spring Batch : json 파일을 읽도록 FlatFileItemReader를 설정하는 방법은 무엇입니까?
SPRINGSpring Batch : json 파일을 읽도록 FlatFileItemReader를 설정하는 방법은 무엇입니까?
지금까지의 나의 접근 방식 :
@Bean
FlatFileItemReader<Blub> flatFileItemReader() {
FlatFileItemReader<Blub> reader = new FlatFileItemReader<>();
reader.setResource(new FileSystemResource("test.json"));
JsonLineMapper lineMapper = new JsonLineMapper();
reader.setLineMapper(lineMapper);
return reader;
}
challenge는 다음과 같습니다. reader.setLineMapper ()는 JsonLineMapper를 사용할 수 없습니다. JsonLineMapper를 올바르게 사용하는 방법?
해결법
-
==============================
1.그것은 json 파일의 형식에 따라 다릅니다.
그것은 json 파일의 형식에 따라 다릅니다.
예 :
{object1} {object2}
다음 두 가지 옵션이 있습니다.
예 :
[ {object1}, {object2} ]
버전 4.1.0.M1에서 소개 한 새로운 JsonItemReader를 사용할 수 있습니다 (블로그 게시물의 예 : https://spring.io/blog/2018/05/31/spring-batch-4-1- 0-m1-released # -add-a-new-json-item-reader).
이 질문과 비슷한 질문이 있습니다. 참조 용으로 여기에 추가하고 있습니다.
-
==============================
2.BlubJsonLineMapper 클래스 만들기
BlubJsonLineMapper 클래스 만들기
public class BlubJsonLineMapper implements LineMapper<Blub> { private ObjectMapper mapper = new ObjectMapper(); /** * Interpret the line as a Json object and create a Blub Entity from it. * * @see LineMapper#mapLine(String, int) */ @Override public Blub mapLine(String line, int lineNumber) throws Exception { return mapper.readValue(line, Blub.class); } }
FlatFileItemReader에서 설정할 수 있습니다.
@Bean FlatFileItemReader<Blub> flatFileItemReader() { FlatFileItemReader<Blub> reader = new FlatFileItemReader<>(); reader.setResource(new FileSystemResource("test.json")); BlubJsonLineMapper lineMapper = new BlubJsonLineMapper(); reader.setLineMapper(lineMapper); return reader; }
-
==============================
3.나는 Json을위한 작은 데모를 만들었다. 더 이상 필요하다면 다른 예제를 만들 수 있음을 알려주세요.
나는 Json을위한 작은 데모를 만들었다. 더 이상 필요하다면 다른 예제를 만들 수 있음을 알려주세요.
https://github.com/bigzidane/spring-batch-jsonListItem-reader
from https://stackoverflow.com/questions/51928967/spring-batch-how-to-setup-a-flatfileitemreader-to-read-a-json-file by cc-by-sa and MIT license