인프런 커뮤니티 질문&답변

유영태님의 프로필 이미지
유영태

작성한 질문수

스프링 배치

빈등록 관련 에러

작성

·

163

0

***************************

APPLICATION FAILED TO START

***************************

Description:

Parameter 4 of constructor in io.springbatch.batch.job.api.SendJobConfiguration required a single bean, but 4 were found:

- apiMasterStep: defined by method 'apiMasterStep' in class path resource [io/springbatch/batch/job/api/ApiStepConfiguration.class]

- apiSlaveStep: defined by method 'apiSlaveStep' in class path resource [io/springbatch/batch/job/api/ApiStepConfiguration.class]

- jobStep: defined by method 'jobStep' in class path resource [io/springbatch/batch/job/api/SendChildJobConfiguration.class]

- fileStep: defined by method 'fileStep' in class path resource [io/springbatch/batch/job/file/FileJobConfiguration.class]

Action:

Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed

Process finished with exit code 1

이런 에러가 발생하는데 어케 해결해야 될까요? ㅠ

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

유영태님의 질문에 답변드리겠습니다.

스프링 배치 어플리케이션이 시작할 때 나타나는 빈 등록 관련 에러는 파라미터로 주입되어야 할 스프링 빈이 여러 개 발견되어 발생하는 것으로 보입니다. 이를 해결하기 위해서는 몇 가지 방법이 있습니다.

  1. @Primary 어노테이션을 사용하여 스프링이 자동으로 주입할 기본 빈을 지정할 수 있습니다.
  2. @Qualifier 어노테이션을 사용하여 주입할 빈의 이름을 명시적으로 지정할 수 있습니다.
  3. 만약 해당 생성자가 여러 빈을 받을 수 있도록 설계되었다면, 생성자의 파라미터를 수정하여 여러 빈을 받아들일 수 있도록 변경하는 방법도 고려할 수 있습니다.

에러 메시지에서는 @Primary를 고려하거나, 소비자(여기서는 생성자)가 여러 빈을 받아들일 수 있도록 업데이트하거나, @Qualifier를 사용하라고 제안하고 있습니다. 따라서, 위의 방법 중 하나를 선택하여 적용해보시길 권장합니다.

스프링 배치와 관련된 더 자세한 정보는 스프링 배치 공식 문서를 참고하시길 바랍니다.

스프링 배치 공식 문서

도움이 되셨길 바랍니다!

유영태님의 프로필 이미지
유영태

작성한 질문수

질문하기