문제 상황
JwtUtil 클래스를 Bean에 등록했음에도, autowire을 할 수 없다는 경고가 자꾸 나온다.
문제 원인: Component Scanning 범위
원인이 무엇인지 갈피를 못 잡아서 GPT한테 물어보니, "Component Scanning이 이루어지는 패키지 안에 있음?"이라고 한다.
경로를 다시 보니 개발이 이루어지는 domain과 global 디렉토리가 @SpringBootApplication 이 있는 패키지 밖에 있었다.
문제 해결
해결은 위 두 디렉토리를 패키지 안으로 넣어서 해결했긴 한데, 이 @SpringBootApplication의 Component Scan 범위에 대해 알게 되었다.
기본적으로 Component Scan이 이루어지는 범위는 @SpringBootApplication이 적용된 클래스가 속한 패키지 내부이며,
이를 바꾸기 위해서는 @ComponentScan(basePackages = {"com.example.service", "com.example.repository"})와 같이 설정하면 된다. excludeFilters 속성을 사용하면 제외하는 것도 가능하다.
참조
'Development > Diary' 카테고리의 다른 글
[Diary][Spring] Spring Security에서 Role과 Authority의 차이가 뭘까? (0) | 2024.08.29 |
---|---|
[Diary][Spring] 식별,비식별 관계? 관계의 방향? 외래 키의 주인? (1) | 2024.08.27 |
[Diary][Spring] Spring Cloud Gateway와 FeignClient를 같이 사용하면 발생할 수 있는 문제 (0) | 2024.08.25 |
[Diary] AWS EC2에서 겪은 포트포워딩 문제: 리눅스 네트워크 인터페이스 eth0와 enX0 (1) | 2024.08.01 |
[Diary] 지저분한 Service 메서드 코드 Command DesignPattern 적용기 (5) | 2024.07.22 |