Written on
·
247
2
안녕하세요 질문이 하나있습니다.
1:40 부터 잠깐 보시면
new AnnotationConfigApplicationContext(AppConfig.class);
AnnotationConfigApplicationContext에 파라미터로 넘긴 값은 스프링 빈으로 등록된다고 하셨는데(AppConfig.class )
AppConfig 이 class는 이미
@Configuration 이 붙어있어서 스프링 빈으로 등록 되어 있는 상태 아닌가요 ??
@Configuration
public class AppConfig {..}
Answer 1
2
안녕하세요. 기팝님, 공식 서포터즈 David입니다.
ConfigurationSingletonTest에 @SpringBootTest가 붙어있지 않습니다.
그렇다면 테스트 실행시 스프링 컨테이너가 생성되지 않는다는 말입니다.
스프링 컨테이너가 생성되지 않으면 당연히 빈을 등록할 방법이 없습니다.
따라서 각 테스트 메서드에서 테스트 내에서 사용할 컨테이너를 생성하고 있습니다.
이번 테스트는 AppConfig를 컨테이너가 생성될 때 넘겨서 빈으로 등록하되게 하고,
@Configuration이 붙은 설정 클래스가 프록시를 사용한 빈으로 잘 등록되었는지 확인하는 과정입니다.
감사합니다.
친절한 답변 갑사합니다