728x90
- includeFilters : 컴포넌트 스캔 대상을 추가로 지정한다.
- excludeFilters : 컴포넌트 스캔에서 제외할 대상을 지정한다
- MyIncludeComponent Annotation

MyIncludeComponent
- MyExcludeComponet Annotation

MyExcludeComponet

MyIncludeComponent가 붙은 클래스 
MyExcludeComponent가 붙은 클래스 
Test
- includeFilters에 MyIncludeComponent 애노테이션을 추가해서 BeanA가 스프링 빈에 등록된다.
- excludeFilters에 MyExcludeComponent 애노테이션을 추가해서 BeanB는 스프링 빈에 등록되지 않는다
- FilterType은 5가지 옵션이 있다.
- ANNOTATION: 기본값, 애노테이션을 인식해서 동작한다.
- ex) org.example.SomeAnnotation
- ASSIGNABLE_TYPE: 지정한 타입과 자식 타입을 인식해서 동작한다.
- ex) org.example.SomeClass
- ASPECTJ: AspectJ 패턴 사용
- ex) org.example..*Service+
- REGEX: 정규 표현식
- ex) org\.example\.Default.*
- CUSTOM: TypeFilter 이라는 인터페이스를 구현해서 처리
- ex) org.example.MyTypeFilter
- ANNOTATION: 기본값, 애노테이션을 인식해서 동작한다.
- 참고: @Component 면 충분하기 때문에, includeFilters를 사용할 일은 거의 없다. excludeFilters는 여러 가지 이유로 간혹 사용할 때가 있지만 많지는 않다. > 특히 최근 스프링 부트는 컴포넌트 스캔을 기본으로 제공하는데, 개인적으로는 옵션을 변경하면서 사용하기보다는 스프링의 기본 설정에 최대한 맞추어 사용하는 것을 권장하고, 선호하는 편이다.
728x90
'스프링 핵심 원리(기본편)' 카테고리의 다른 글
| Ch07. 의존관계 자동 주입 - 의존관계 자동 주입 (0) | 2022.02.21 |
|---|---|
| Ch06. 컴포넌트 스캔 - 중복 등록과 충돌 (0) | 2022.02.20 |
| Ch06. 컴포넌트 스캔 - 탐색 위치와 기본 스캔 대상 (0) | 2022.02.20 |
| Ch06. 컴포넌트 스캔 - 컴포넌트 스캔과 의존관계 자동 주입 시작하기 (0) | 2022.02.20 |
| Ch05. 싱글톤 컨테이너 - @Configuration과 바이트코드 조작의 마법 (0) | 2022.02.19 |