인프런 커뮤니티 질문&답변

이예진님의 프로필 이미지
이예진

작성한 질문수

스프링 핵심 원리 - 기본편

컴포넌트 스캔과 의존관계 자동 주입 시작하기

@ComponentScan의 excludeFilters 적용 대상

작성

·

311

2

안녕하세요, 선생님

좋은 강의로 매일 열심히 공부하고 있습니다.

그런데 이번 강의에서 @ComponentScan의 excludeFilters 의 적용 대상(?) 궁금한게 있어

문의드립니다.

기존 작성한 AppConfig는 개인 공부 용도로 삭제하지 않는 대신  AutoAppConfig Class를 새로 생성했잖아요. 여기서 기존 AppConfig  설정정보를 제외시킬려고 excludeFilters를 사용한 것 까지 이해를 했습니다.

============================================

@Configuration

@ComponentScan

excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class))

public class AutoAppConfig { } 

============================================

여기서 의문이 있습니다.

AutoAppConfig Class도 @Configuration를 가지고 있습니다. 이때 @ComponentScan의 excludeFilters 적용 대상(?)이 AutoAppConfig Class에서 작성했기 때문에 자기 자신(AutoAppConfig Class)을 제외한 나머지 클래스(AppConfig,TestCofig 등)가 되는 것 같습니다.

제가 이해한게 맞나요?

여러번 강의 및 자료를 봐도 이해가 되지 않아서 문의드립니다.

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 예진님^^

다음 질문을 참고해주세요.

https://www.inflearn.com/questions/191114

https://www.inflearn.com/questions/186890

감사합니다.

이예진님의 프로필 이미지
이예진
질문자

안녕하세요, 선생님

답변해 주신 참고 내용 확인했습니다.

  • new AnnotationConfigApplicationContext() -> 스프링 컨테이너
  • new AnnotationConfigApplicationContext(AutoAppConfig.class); -> 인자값이 스프링 컨테이너에 스프링 빈으로 등록
  • @ComponentScan 작동 

위 순서대로 진행된다고 하면

AutoAppConfig.class에 @Configuration을 선언할 필요가 없는데, 선언한 이유가 있나요?

@Configuration 빼고 프로그램 실행 시 @Configuration이 있을 때와 차이가 없더라구요.

너무 궁금해서 문의드립니다...

김영한님의 프로필 이미지
김영한
지식공유자

네 이 경우 빼도 동작은 하는데요.

다음 강의를 참고해주세요^^

@Configuration과 싱글톤

@Configuration과 바이트코드 조작의 마법

이예진님의 프로필 이미지
이예진

작성한 질문수

질문하기