본문 바로가기
IT/spring

스프링 컴포넌트 스캔(component-scan) 설정

by 뉴코딩맨 2023. 6. 15.
스프링 프레임워크에서는 컴포넌트 스캔(Component Scan)을 통해 애플리케이션에서 사용할 빈(Bean)을 자동으로 검색하고 등록할 수 있습니다. 스프링 컴포넌트 스캔 설정에 대해 알아보고, 실제 예시를 통해 설명하겠습니다.
 
 

컴포넌트 스캔 설정 방법

스프링에서 컴포넌트 스캔을 활용하기 위해서는 다음과 같은 설정이 필요합니다.

 

@ComponentScan 어노테이션 사용

@ComponentScan 어노테이션은 컴포넌트 스캔을 수행하는 주요 어노테이션입니다. 이 어노테이션은 설정 클래스에 추가되며, 스캔할 패키지를 지정합니다.
 
@Configuration
@ComponentScan("com.example")
public class AppConfig {
	// 설정 내용
}
 
위 예시에서는 com.example 패키지를 스캔하여 빈을 등록합니다.

 

 

@Component 어노테이션 사용

컴포넌트 스캔 대상 클래스는 @Component 어노테이션으로 표시합니다. 이 어노테이션은 해당 클래스를 스프링의 빈으로 등록하도록 지정합니다.
 
@Component
public class MyComponent {
	// 컴포넌트 내용
}
 
위 예시에서는 MyComponent 클래스가 스프링 빈으로 등록됩니다.
 
 

컴포넌트 스캔의 활용

컴포넌트 스캔은 애플리케이션의 개발 생산성을 향상시키고 중복된 설정 코드를 줄일 수 있는 장점이 있습니다. 예를 들어, 컨트롤러, 서비스, 리포지토리 등의 다양한 계층으로 구성된 애플리케이션에서 각 계층의 클래스를 @Component 어노테이션으로 표시하고, 컴포넌트 스캔을 설정하면 자동으로 해당 계층의 빈을 등록할 수 있습니다.

 

@Controller
public class MyController {
    // 컨트롤러 내용
}

@Service
public class MyService {
	// 서비스 내용
}

@Repository
public class MyRepository {
	// 리포지토리 내용
}
 
위 예시에서는 @Controller, @Service, @Repository 어노테이션을 사용하여 각각 컨트롤러, 서비스, 리포지토리를 표시합니다. 컴포넌트 스캔이 설정된 경우, 이러한 클래스들은 자동으로 빈으로 등록됩니다.
 
 

결론

스프링의 컴포넌트 스캔은 애플리케이션에서 사용할 빈을 자동으로 검색하고 등록하는 기능을 제공합니다. @ComponentScan 어노테이션을 사용하여 스캔할 패키지를 지정하고, @Component 어노테이션을 사용하여 빈으로 등록할 클래스를 표시합니다. 이를 통해 개발 생산성을 높이고 중복된 설정 코드를 줄일 수 있습니다.

 

'IT > spring' 카테고리의 다른 글

스프링 @Qualifier  (0) 2023.06.15
스프링 의존성 주입(Dependency Injection) 설정  (0) 2023.06.15
스프링 properties 타입 매핑  (0) 2023.06.14
스프링 Map 타입 매핑  (0) 2023.06.14
스프링 Set 타입 매핑(Set Type Mapping)  (0) 2023.06.14

댓글