
테스트코드 작성하는데 @Autowired 어노테이션으로 해당 bean을 가지고 오려고하는데 위와 같이
"오토와이어링할 수 없습니다. 'ProductService' 타입의 bean을 찾을 수 없습니다. " 라는 오류가 떴다.
시도 1 : @Service, @SpringBootTest 어노테이션 잘 썼는지 확인
@Service
@RequiredArgsConstructor
public class ProductService {
Service 파일에 @Service 어노테이션도 잘 붙여줬는데 왜 bean으로 등록이 되지 않았다고 뜨는걸까.
시도 2: gradle clean하고 다시 build

해도 안된다.
시도 3: 폴더 구조가 잘되어 있는지 확인하자
1) ProductService 위치 : com.example.locking 폴더 밑에 있는지 확인
2) 메인 클래스 위치 : @SpringBootApplication이 붙은 메인 클래스가 가장 상위 패키지 (Base Package) 에 위치하는지 확인한다.

...
Item 관련 파일을 item 폴더에 옮겼을 때 LockingApplication도 같이 옮겼나 보다 ..
현재 메인 클래스가 com.example.locking.item과 같은 하위 패키지에 들어가 있어, 상위 패키지인 com.example.locking의 다른 Bean들(예: ProductService)을 찾지 못하고 Bean 누락 오류가 발생한 것이다.

LockingApplication을 locking 폴더 밑으로 리팩토링했더니 해결됐다!
'Trouble Shooting' 카테고리의 다른 글
| @OneToOne 관계에서 mappedBy 쪽은 fetch.Lazy 적용이안됨 (0) | 2025.12.08 |
|---|---|
| 트랜잭션 커밋 지연 @TransactionalEventListener로 해결 (0) | 2025.11.23 |
| rebase merge된 develop 브랜치에서 작업중인 내 브랜치로 pull 하는 방법 (1) | 2025.11.10 |