Skip to content

Spring ComponentScan 컨셉

이민형 edited this page Dec 25, 2020 · 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({CoreConfig.class, WebConfig.class}) // Import 어노테이션 클래스를 이용해서 다른 모듈에 있는 Configuration 클래스 Scan
public class BomPlatformApplication { 
    public static void main(String[] args) {
        SpringApplication.run(BomPlatformApplication.class, args);
    }
}
package com.javabom.bomplatform.core.config; // core 모듈의 Configuration 클래스

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
// ComponentScan 어노테이션으로 Core 모듈의 빈들을 등록할 수 있게 한다.
@ComponentScan(basePackages = {"com.javabom.bomplatform.core"}) 
public class CoreConfig {
}

문제점 ➡️ Import 어노테이션 인자에 계속해서 Configuration 클래스들이 추가 된다. 커스텀 어노테이션을 만들어서 Import할 Configuration 클래스들을 관리하더라도 매번 추가할 때마다 번거로움이 있다.

Clone this wiki locally