본문 바로가기
반응형
Spring

[Spring] 스프링 핵심 원리 - 기본편 > 섹션 6. 컴포넌트 스캔

by brightGarden02 2024. 4. 11.

인프런 김영한 강사님의 [스프링 핵심 원리 - 기본편] > 섹션6. 컴포넌트 스캔에 대한 요점 정리를 하였다.

 

메서드에 @Bean 적용을 해야 하는 경우가 너무 많아질 경우가 있다.

@Bean 적용 없이 동일하게 스프링 빈으로 등록하고 싶을 경우, 클래스에 @Component를 적용하고 DI를 위해서 생성자에 @Autowired를 적용한다. 그리고 @ComponentScan을 적용한 클래스를 만들면 된다.

 

@ComponentScan은 이름 그대로 @Component 어노테이션을 적용한 클래스를 스캔해서 스프링 빈으로 등록한다.

 

 

 

@Configuration
@ComponentScan(
        excludeFilters = @Filter(type = FilterType.ANNOTATION, classes =
        Configuration.class)
)
public class AutoAppConfig {

}

싱글톤을 적용하기 위해 @Configuration을 적용했다.

AppConfig가 아닌 AutoAppConfig를 통해 스프링이 DI를 할 것이다,

기존에 있던 AppConfig 클래스에 @Configuration이 적용된 것을 배제하기 위해 excludeFilters를 사용했다.

 

 

 

@Configuration
@ComponentScan(
    	basePackages = "org.multimodule"
)
public class AutoAppConfig {

}

@ComponentScan을 적용한 클래스 위치는 최상단에 위치한다. 이유는 기본적으로 해당 패키지에 있는 모든 자바 클래스에서 @Component가 있는지 탐색하기 때문이다. 물론 basePackages = ""를 통해서 탐색 시작 위치 변경이 가능하다.

 

 

 

@Component
public interface MemberService {

    void join(Member member);
    Member findMember(Long memberId);
}

스프링 빈으로 등록할 클래스에 @Component를 적용했다.

 

 

 

참고: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard

 

스프링 핵심 원리 - 기본편 | 김영한 - 인프런

김영한 | 스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., 스프링 핵심 원리를 이해하고, 성장하는 백엔드 개발자가 되어보

www.inflearn.com

 

댓글


반응형
반응형