Replies: 2 comments 3 replies
-
위 문제를 해결하기 위해서 @SpringBootApplication에대해서 알아볼 필요가 있습니다 ![]() @SpringBootApplication 안에는 @EnableAutoConfiguratoin과 @componentscan이 있습니다.
그러나, 저희 프로젝트의 core 모듈에서는 별도로 @EntityScan을 사용합니다. 따라서, Spring Boot의 자동 구성(auto-configuration)에서 엔터티를 검색하는 기능이 비활성화됩니다. @Configuration
@EntityScan(basePackages = "com.dnd.sbooky.core")
@EnableJpaRepositories(basePackages = "com.dnd.sbooky.core")
class CoreJpaConfig {
} 그렇기 때문에 api 모듈에서는 core 모듈의 빈들을 사용할 수 없는 문제가 발생합니다. 이를 해결하기 위해 api 모듈의 MainApplication인 SbookyApplication의 위치를 com.dnd.sbooky로 이동하였습니다. 문제의 PR : #30 |
Beta Was this translation helpful? Give feedback.
-
패키지 구조를 모듈별로 분리하는 과정에서 빈 주입 문제가 발생합니다.
패키지 구조가 변경이 되더라도, build.gradle의 의존성 설정(implementation project(:core)) 를 통해 빈 주입이 되는 것으로 잘못 이해하고 있었습니다. 정확한 이유를 찾아보니, 이러한 이유로 빈 스캔이 필요하다 는 것을 파악하였으며 해결 방안은 다음과 같습니다:
현재 프로젝트에서는 단순하게 1번 방법을 통해 컴포넌트 스캔의 대상이 되는 패키지를 크게 가져가도록 하였습니다. 의문점Application.java (Main)의 위치를 최상위 패키지(com.dnd.sbooky)로 지정한 만큼, 다른 모듈의 빈까지 주입받는 상황인데 api 모듈에서 정말 전체 빈 정보가 필요할까? 라는 의문이 들긴 합니다. 아직까지는 작업중인 모듈이 api, core 2가지 모듈이기 때문에 큰 이슈는 없는 것으로 보이나 새로운 모듈이 등장하게 될 시점에는 |
Beta Was this translation helpful? Give feedback.
-
문제 상황
core 모듈의 빈을 api 모듈에서 주입하려고 할 때 의존성 주입에서 오류가 발생하여 SpringBoot Application 이 실행되지 않는 상황입니다.
어떤 문제점들이 존재하는걸까요?
Beta Was this translation helpful? Give feedback.
All reactions