복붙노트

[SPRING] Spring Batch : json 파일을 읽도록 FlatFileItemReader를 설정하는 방법은 무엇입니까?

SPRING

Spring 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. ==============================

    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. ==============================

    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. ==============================

    3.나는 Json을위한 작은 데모를 만들었다. 더 이상 필요하다면 다른 예제를 만들 수 있음을 알려주세요.

    나는 Json을위한 작은 데모를 만들었다. 더 이상 필요하다면 다른 예제를 만들 수 있음을 알려주세요.

    https://github.com/bigzidane/spring-batch-jsonListItem-reader

  4. 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