해결된 질문
작성
·
1.7K
·
수정됨
1
package hello.core.scan.filter;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;
import static org.springframework.context.annotation.ComponentScan.*;
public class ComponentFilterAppConfigTest {
@Test
void filterScan() {
ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfigTest.class);
BeanA beanA = ac.getBean("beanA", BeanA.class);
//여기서 계속 문제 발생
assertThat(beanA).isNotNull();
assertThrows(
NoSuchBeanDefinitionException.class,
() -> ac.getBean("beanB", BeanB.class));
}
@Configuration
@ComponentScan(
includeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyIncludeComponent.class),
excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class)
)
static class ComponentFilterAppConfig {
}
}
안녕하세요, '필터' 강의에서 filterScan 테스트 하는 부분에서 계속해서 아래와 같은 에러가 발생하네요
(강의에서는 5분 3초에서 실행하는 부분입니다.)
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanA' available
처음부터 다시 써보기도하고 이전의 질문들을 찾아보기도 했지만 이 테스트 코드는 계속해서 통과를 할 수 없네요ㅠ
어떤 문제인지 도와주실 수 있다면 정말 감사드리겠습니다!
답변 2
2
ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfigTest.class);
ComponentFilterAppConfigTest.class 를 ComponentFilterAppConfig.class로 바꿔주세요. 자동완성 이슈인듯 합니다
0
package hello.core.scan.filter;
@MyIncludeComponent
public class BeanA {
}
네 붙인 상태였습니다!
프로젝트 링크 공유드립니다 한번 확인해주시면 정말 감사드리겠습니다!
https://drive.google.com/drive/folders/1K4llnm02ONPUGts_6FCHOdN122v3wN7a?usp=share_link
드디어 해결되었습니다 정말 감사합니다 ! 계속 이상한걸 불러오고 있었군요....