• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

오류 확인 부탁드려요 ㅠㅠ..

22.09.02 13:01 작성 조회수 249

0

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

APPLICATION FAILED TO START

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

Description:

Parameter 0 of method validateParamJob in com.iroutine.batchexample.job.validateParam.ValidateParamJobConfig required a single bean, but 2 were found:

	- helloWorldStep: defined in BeanDefinition defined in class path resource [com/iroutine/batchexample/job/helloWorld/HelloWorldJobConfig.class]

	- validateParamStep: defined in BeanDefinition defined in class path resource [com/iroutine/batchexample/job/validateParam/ValidateParamJobConfig.class]

위와 같은 오류가 발생하였는데요 @Configuration 을 HelloWorldJobConfig에서 주석 처리하니

오류가 발생하지 않았습니다 ㅠ @Configuration 을 여러 곳에서 사용하여 발생한 오류일까요?

이거는 추가적인 질문인데 아래의 2개 어노테이션 비슷한 기능하는거 같은데

두개 다 넣는 것이 맞나요 ?

@RequiredArgsConstructor
@Autowired

답변 1

답변을 작성해보세요.

0

admin-noreply 님 안녕하세요 :)

로그 내용만을 볼 때는 validateParamJob을 호출할 때 동일한 이름의 잡이 helloWorldStep에도 존재하는 것 같아요!! 빈으로 등록되는 job의 이름과 get함수의 job 이름을 변경을 해주셔야 될 것 같습니다.

말씀해주신 것 처럼 @Autowired와 @RequiredArgsConstructor는 객체를 주입하는 것은 동일합니다. 하지만 Autowired는 객체를 주입해주는 기능을 해주고, RequiredArgsConstructor는 final 필드가 붙어 있는 경우에 대해서 생성자를 만들어 주는 기능을 해줍니다. 초기화 되어 있지 않은 필드들은 생성자에서 스프링이 객체를 주입을 하기 때문에 기능적으로는 같아 보일 수 있으나 두개의 어노테이션은 다른 어노테이션이겠습니다.

감사합니다.