-
Notifications
You must be signed in to change notification settings - Fork 1
Spring ComponentScan 컨셉
이민형 edited this page Jan 3, 2021
·
2 revisions
SpringBootApplication 클래스는 com.javabom.bomplatform.web.main 패키지에 위치한다.
package com.javabom.bomplatform.web.main; // Application 클래스의 위치, web 모듈
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@Import({WebConfig.class}) // Import 어노테이션 클래스를 이용해서 WebConfiguration 클래스 Import
public class BomPlatformApplication {
public static void main(String[] args) {
SpringApplication.run(BomPlatformApplication.class, args);
}
}package com.javabom.bomplatform.web.config; // core 모듈의 Configuration 클래스
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
// ComponentScan 어노테이션으로 Web 모듈의 빈들을 등록할 수 있게 한다.
@ComponentScan(basePackages = {"com.javabom.bomplatform.web.service", "com.javabom.bomplatform.web.service" })
@Import({CoreConfig.class})
public class WebConfig {
}문제점 ➡️ Import 어노테이션 인자에 계속해서 Configuration 클래스들이 추가 된다. 커스텀 어노테이션을 만들어서 Import할 Configuration 클래스들을 관리하더라도 매번 추가할 때마다 번거로움이 있다. 장점 -> Config들을 선택적으로 가져갈 수 있다.