본문 바로가기
백엔드/Spring(Boot)

springboot 멀티 모듈 프로젝트에서 다른 모듈의 빈을 찾지 못할 때

by 김어찐 2023. 1. 9.
728x90

문제 상황

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

 

728x90

'백엔드 > 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