문제 상황
Spring boot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못하는 상황. 두 모듈의 group 이 다름
Ex) A 모듈에서 생성한 a bean을 B 모듈 안에서 주입받고 싶음
A 모듈의 group id: com.example.a
B 모듈의 group id: com.example.b
발생 에러
생성자 주입 시 argument를 찾을 수 없다는 에러 발생
원인 및 해결 방법
원인은 두 모듈의 group id가 달라서 그런 것..! (정확히는 패키지가!)
기본적으로는 @SpringBootApplication 애노테이션이 붙은 클래스가 위치하는 곳이 basePackage로 설정되어 해당 패키지 하위 패키지의 컴포넌트를 가져옴
하지만 위 예시처럼 패키지가 다른 경우 별도로 컴포넌트 스캔을 하고싶은 패키지를 명시해줘야함
해결 방법으로는 두 가지가 있음
1. 두 모듈의 group id를 동일하게 변경
2. ComponentScan annotataion 사용 or SpringBootApplication의 scanBasePackages 값 명시
@ComponentScan(value="com.example.a")
//or
@SpringBootApplication(scanBasePackages="com.example.a")
영문 검색 키워드
spring multi module project cannot find bean
[참고]
https://unfunhy.tistory.com/m/149
Spring Boot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못할 때
문제 상황 Spring boot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못하는 상황. 두 모듈의 group 이 다름 Ex) A 모듈에서 생성한 a bean을 B 모듈 안에서 주입받고 싶음 A 모듈의 group id: com.example.a B
unfunhy.tistory.com
'백엔드 > Spring(Boot)' 카테고리의 다른 글
| springboot multimodule (0) | 2023.01.01 |
|---|---|
| spring 외부 경로 매핑 (0) | 2022.08.11 |
| spring static 경로 404 (0) | 2022.08.10 |
| spring responsebody json 필드명 변경하기 (0) | 2022.08.02 |
| springboot 파일업로드 (0) | 2022.07.01 |