반응형
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 |