스터디를 하면서 내가 본 적 없는 에러와 예외들이 나와서 기록해보고자 한다.
Parameter 0 of constructor in com.example.study.ApiController required a bean of type 'service.MemberService' that could not be found.
ApiController 생성자에 필요한 MemberService 타입의 빈을 찾을 수 없다.
따라서 스프링 빈 or 의존관계 자동 주입의 문제라 파악되어서 일단 어노테이션을 잘 붙여서 스프링 빈으로 잘 등록했는지 확인했지만 이 부분은 멀쩡했었다.
MemberService 타입의 클래스를 스프링 빈에 등록할 수 있게 @Service 어노테이션이 붙어있었다.
그렇다면 스프링 빈 자동 등록과 의존관계 자동주입 할 때 문제인가 싶어서 패키지 구조를 찍어달라고 했는데 여기에 문제가 있었다.
스프링부트 시작 클래스인 StudyApplication의 패키지 위치를 기반으로 스프링 빈을 자동 등록하고, 의존관계 자동 주입을 하는 것이지만 별개의 상위 패키지에 클래스들을 만들고 있었던 것이다!!!
com.example.study 패키지 안에 domain, dto, repository, service가 들어가면 해결되므로 의외로 손쉽게 해결됐다.
그래도 이번 스터디에서는 차근차근 스프링 빈부터 알려드릴 수 있어서 깊게 이해하시는 것 같다.
'Spring > Spring' 카테고리의 다른 글
트랜잭션을 사용할 때 각 DB들의 기본 격리 수준은 무엇일까? (0) | 2023.02.20 |
---|---|
포스트맨으로 url 요청했는데 405 에러 (0) | 2023.02.13 |
스프링부트 - 하루에 한 번 쿠키 기반 조회수 증가 구현 (1) | 2022.10.03 |
[SpringBoot] 이미지 파일 다운로드 (0) | 2022.07.06 |
[스프링시큐리티] Spring Security 5.7 (WebSecurityConfigurerAdapter 에러해결방법) (0) | 2022.07.03 |