스프링 컨테이너 생성
ApplicationContext
- 스프링 컨테이너
- 인터페이스
- AnnotationConfigApplicationContext 의 추상화

컨테이너에 등록된 모든 빈 조회
getBeanDefinitionNames()
: 등록된 모든 빈들의 이름을 조회할 수 있다.
- BeanDefinition.ROLE_APPLICATION : 직접 등록한 어플리케이션 빈
- BeanDefinition.ROLE_INFRASTRUCTURE : 스프링 내부에서 사용하는 빈
스프링 빈 조회 - 상속 관계
스프링 빈 조회 시 부모 클래스 타입으로 조회하면 부모 클래스 포함 하위 클래스들의 빈 모두 조회된다.
BeanFactory 와 ApplicationContext

- ApplicationContext = BeanFactory + 부가 기능
BeanFactory
- 스프링 컨테이너의 최상위 인터페이스
- 스프링 빈을 관리하고 조회하는 역할을 담당
ApplicationContext
- BeanFactory 기능을 모두 상속 받아서 제공