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

기팝님의 프로필 이미지
기팝

작성한 질문수

스프링 핵심 원리 - 기본편

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

class AppConfig

작성

·

224

2

안녕하세요 질문이 하나있습니다.

1:40 부터 잠깐 보시면

new AnnotationConfigApplicationContext(AppConfig.class);

 

AnnotationConfigApplicationContext에 파라미터로 넘긴 값은 스프링 빈으로 등록된다고 하셨는데(AppConfig.class )

AppConfig 이 class는 이미 

@Configuration 이 붙어있어서 스프링 빈으로 등록 되어 있는 상태 아닌가요 ??

@Configuration
public class AppConfig {..}

답변 1

2

안녕하세요. 기팝님, 공식 서포터즈 David입니다.

ConfigurationSingletonTest에 @SpringBootTest가 붙어있지 않습니다.

그렇다면 테스트 실행시 스프링 컨테이너가 생성되지 않는다는 말입니다.

스프링 컨테이너가 생성되지 않으면 당연히 빈을 등록할 방법이 없습니다.

 

따라서 각 테스트 메서드에서 테스트 내에서 사용할 컨테이너를 생성하고 있습니다.

이번 테스트는 AppConfig를 컨테이너가 생성될 때 넘겨서 빈으로 등록하되게 하고,

@Configuration이 붙은 설정 클래스가 프록시를 사용한 빈으로 잘 등록되었는지 확인하는 과정입니다.

감사합니다.

기팝님의 프로필 이미지
기팝
질문자

친절한 답변 갑사합니다

기팝님의 프로필 이미지
기팝

작성한 질문수

질문하기