// 자바 설정 클래스 기반으로 스프링 컨테이너 생성
// AnnotationConfigApp..은 ApplicationContext의 구현체이다.
ApplicationContext ac = new AnnotationConfigApplicationContext(
AppConfig.class
);
ApplicationContext은 스프링 컨테이너며 인터페이스이다.참고
스프링 컨테이너를 더 정확하게 부르면,BeanFactory,ApplicationContext로 구분해서 말한다.
BeanFactory를 직접 사용하는 경우는 거의 없어서 일반적으로 ApplicationContext를 스프링 컨테이너라고 생각하면 된다.
1. 스프링 컨테이너 생성

new AnnotationConfigApplicationContext(AppConfig.class)2. 스프링 빈 등록

3. 스프링 빈 의존관계 설정

ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈의 이름을 조회ac.getBean() : 빈 이름으로 객체를 조회beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATIONbeanDefinition.getRole() == BeanDefinition.ROLE_INFRASTRUCTURE