해결된 질문
작성
·
290
2
안녕하세요. 질문드립니다.
강의를 내용의 예제를 확인해보면
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MyExcludeCompnent {
}
형태로 어노테이션 MyExcludeComponent를 생성하고
@MyExcludeComponent
public class BeanB {
}
class BeanB가 어노테이션을 받았는데
@ComponentScan(
includeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class),
excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class)
)
MyExcludeComponent 를 exclude하고 ComponentScan을 하였는데
애초에 ComponentScan 대상에 @MyExcludeComponent 는 없지 않나요?
단순히 사용방법을 위해서 저렇게 진행하신건지 궁금합니다!
답변 1
1
안녕하세요. 심모님, 공식 서포터즈 OMG입니다.
이해하신대로 컴포넌트 스캔의 대상에서 @MyExcludeComponent를 exclude 하였기 때문에 스캔의 대상에서 제외 되었습니다.
사용의 예시를 보여드리려고 하신게 맞습니다.
추가적으로 필터 관련하여 아래의 링크의 질문과답변을 참고하셔도 좋을 것 같습니다.
https://www.inflearn.com/questions/277050
감사합니다.
애초에 ComponentScan 대상에 @MyExcludeComponent 가 포함되지 않는것 ==>
애초에 ComponentScan 대상에 @MyExcludeComponent가 선언된 TestB 클래스가 포함되지 않는것
이라면 이해하신게 맞습니다.
아래와 같이 @Component를 추가하여 확인해서 테스트 해보시면 명확히 이해하실 수 있으리라 생각합니다.
추가 후 기존의 테스트를 실행해보시면 차이가 발생하는 것을 확인해보시면 되며, 빨간 에러인지 노란 에러인지 확인해보신 후 수정해보시길 바랍니다.
첫 답변이 미흡하였던 점은 죄송합니다.
@MyExcludeComponent
@Component
public class BeanB {
}
감사합니다.
답변 감사합니다.
그런데 제가 질문한 내용과 다른내용이여서 추가 질문 드립니다.
exclude 대상에 @MyExcludeComponent 를 하지 않아도
애초에 ComponentScan 대상에 @MyExcludeComponent 가 포함되지 않는것 같아서 질문을 드립니다.