인프런 김영한 강사님의 [스프링 핵심 원리 - 기본편] > 섹션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를 적용했다.
'Spring' 카테고리의 다른 글
[Spring] 스프링 핵심 원리 - 기본편 > 섹션 8. 빈 생명주기 콜백 (8) | 2024.04.12 |
---|---|
[Spring] 스프링 핵심 원리 - 기본편 > 섹션 7. 의존관계 자동 주입 (0) | 2024.04.11 |
[Spring] 스프링 핵심 원리 - 기본편 > 섹션 5. 싱글톤 컨테이너 (0) | 2024.04.10 |
[Spring] 스프링 핵심 원리 - 기본편 > 섹션3. 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 (0) | 2024.04.08 |
parser() is deprecated 해결방법 (0) | 2023.09.09 |
댓글