Skip to content

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들을 선택적으로 가져갈 수 있다.

Clone this wiki locally