개발경험기록

Spring openfeign Parameter 0 of constructor 에러 해결

놋수저 2022. 8. 20. 12:30
반응형

Spring에서 서버간 통신하기 위해 spring-cloud-starter-openfeign을 많이 사용한다.

 

@FeignClient(value = "kakaoAuth", url="https://kauth.kakao.com", configuration = {FeignConfiguration.class})
public interface KakaoAuthApi {
    @GetMapping("/oauth/token")
    ResponseEntity<String> getAccessToken(
            @RequestParam("client_id") String clientId,
            @RequestParam("client_secret") String clientSecret,
            @RequestParam("grant_type") String grantType,
            @RequestParam("redirect_uri") String redirectUri,
            @RequestParam("code") String authorizationCode
    );
}

 

카카오 로그인 기능 구현 중 카카오 인증 서버와 통신하기 위해 FeignClient 인터페이스를 생성하였다.

 

@Slf4j
@Service
@RequiredArgsConstructor
@Qualifier("kakaoLogin")
public class KakaoLoginServiceImpl implements SocialLoginService {
    private final KakaoAuthApi kakaoAuthApi;
}

 

앞서 생성한 인터페이스를 사용하는 위 클래스에서 의존하도록 설정하였다.

그러고 실행해보니.. 아래와 같은 런타임 오류가 발생했다.

 

Parameter 0 of constructor in com.study.sociallogin.service.KakaoLoginServiceImpl required a bean of type 'com.study.sociallogin.feign.kakao.KakaoAuthApi' that could not be found.

 

Parameter 0 of constructor ... that could not be found

프로그램 실행 시 의존관계를 주입할 bean을 찾지 못해 발생하는 오류이다.

 

누락되어있는 어노테이션이 있나 확인하던 도중 가장 기본적인 어노테이션을 놓쳤다.

 

@EnableFeignClients
@SpringBootApplication
public class SocialLoginApplication {
	public static void main(String[] args) {
		SpringApplication.run(SocialLoginApplication.class, args);
	}

}

 

@EnableFeignClients을 작성하는 것을 깜빡했다.

@EnableFeignClients 어노테이션이 없으면 FeignClients를 생성해도 찾을 수 없다.

 

open feign을 사용하면서 가장 기본적인 부분을 놓쳤다 😅

반응형
LIST

'개발경험기록' 카테고리의 다른 글

IntelljJ 미사용 Import 코드 정리  (0) 2023.07.16
IntelliJ 렉 버벅거릴 때 해결 방법  (0) 2023.01.23
Vue.js CORS 설정하기  (0) 2022.08.20