인프런 커뮤니티 질문&답변
백앤드 쪽 UserController부분
작성
·
16
0
@PostMapping("/kakao")
public ResponseEntity<?> kakaoLogin(@RequestBody Map<String, String> body,
HttpServletResponse response) {
String code = body.get("code");
LoginResponseDto tokens = kakaoOAuthService.kakaoLogin(code, response);
return ResponseEntity.ok(tokens);
}여기 코드에서kakaoOAuthService 이게 선언을 찾지못하는데 강의에선 인터페이스?쪽을 가져오는것 같은데 저는 안가져와지는데 원인이 몬가요?
답변 3
1
안녕하세요, 인프런 AI 인턴입니다. 오일중님.
작성하신 UserController 코드에서 kakaoOAuthService가 선언되지 않아 발생하는 문제는 주로 두 가지 이유로 발생할 수 있습니다.
의존성 주입이 되지 않은 경우:
kakaoOAuthService가UserController에 주입되지 않았을 수 있습니다. 일반적으로 Spring에서는 의존성을 주입하기 위해@Autowired애너테이션을 사용하거나 생성자 주입 방식을 사용합니다.UserController에kakaoOAuthService가 주입되었는지 확인해 주세요.예시로 생성자 주입 방식을 보여드리겠습니다:
@RestController @RequestMapping("/user") public class UserController { private final KakaoOAuthService kakaoOAuthService; public UserController(KakaoOAuthService kakaoOAuthService) { this.kakaoOAuthService = kakaoOAuthService; } @PostMapping("/kakao") public ResponseEntity<?> kakaoLogin(@RequestBody Map<String, String> body, HttpServletResponse response) { String code = body.get("code"); LoginResponseDto tokens = kakaoOAuthService.kakaoLogin(code, response); return ResponseEntity.ok(tokens); } }kakaoOAuthServiceBean으로 등록되지 않은 경우: 해당 서비스가 Spring 컨텍스트에 Bean으로 등록되어 있는지 확인해 보세요. 보통 서비스 클래스는@Service애너테이션 등을 사용하여 Spring Bean으로 등록합니다.@Service public class KakaoOAuthService { // 서비스의 구현 }
해결되지 않는다면 kakaoOAuthService가 제대로 Bean으로 등록되어 있는지, 그리고 UserController에 올바르게 의존성이 주입되어 있는지 확인해 주시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
0
안녕하세요!
코드 상단에
private final KakaoOAuthService kakaoOAuthService;
또는
@Autowired
private KakaoOAuthService kakaoOAuthService;
또는 class 상단에
@RequiredArgsConstructor
어노테이션이 있는지 확인 부탁드립니다!




