• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

24.02.22 16:56 작성 24.02.22 16:57 수정 조회수 92

0

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

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

답변 2

·

답변을 작성해보세요.

0

OMG님의 프로필

OMG

2024.02.22

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

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

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

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

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

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

감사합니다.

bsm77125님의 프로필

bsm77125

질문자

2024.02.24

아하! 감사합니다~~

0

ppj2130님의 프로필

ppj2130

2024.02.22

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

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

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

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