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

bsm77125님의 프로필 이미지
bsm77125

작성한 질문수

스프링 핵심 원리 - 기본편

섹션 4 <컨테이너에 등록된 모든 빈 조회> 질문

작성

·

146

·

수정됨

0

ApplicationContextInfoTest 클래스에서 질문이 있는데요 기존에는 스프링 컨테이너를 생성해주는 코드를

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 였는데 이번 강의에서는 AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); 로 사용하신 거에 대해서 ApplicationContext로 선언했을 때와 AnnotationConfigApplicationContext로 선언한 것의 차이점이 궁금합니다.

답변 2

0

안녕하세요. bsm77125님, 공식 서포터즈 OMG입니다.

ppj2130님 말씀처럼 인터페이스와 다형성의 관계로 보셔도 되며

(실제로 ApplicationContext는 인터페이스, AnnotationConfigApplicationContext는 클래스입니다)

해당 테스트에서는 아래 이미지와 같이 AnnotationConfigApplicationContext 타입에서만 사용 가능한 getBeanDefinition()을 사용하기 위함이기도 합니다.

image(ApplicationContext 타입의 ac2에서는 getBeanDefinition을 호출할 수 없습니다 😀)

직접 작성하여 확인보시면 좋을 것 같아요^^

감사합니다.

bsm77125님의 프로필 이미지
bsm77125
질문자

아하! 감사합니다~~

0

차이는 없어보이긴하는데,,

리스트도 ArrayList<String> list = new ArrayList<>(); 와

List<String> list = new ArrayList<>(); 가 차이가 없는 것처럼

그냥 부모를 누구를 참조하냐의 차이 아닐까요?

bsm77125님의 프로필 이미지
bsm77125

작성한 질문수

질문하기