스프링 컨테이너 생성
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext 를 스프링 컨테이너라 한다.
- ApplicationContext 는 인터페이스이다.
- 스프링 컨테이너는 xml 기반으로 만들 수 있고, 애노테이션 기반의 자바 설정 클래스로 만들 수 있다.
- AppConfig를 사용했던 방식이 애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다.
- AnnotationConfigApplicationContext()는 ApplicationContext의 인터페이스 구현체이다.
더 알아볼 것 : 스프링 컨테이너는 BeanFactory와 ApplicationContext로 구분한다. 일반적으로는 ApplicationContext를 스프링 컨테이너라고 한다.
스프링 컨테이너의 생성 과정
1. 스프링 컨테이너 생성

- 스프링컨테이너를 생성할 때는 구성 정보를 저장해야 한다.
- 여기서는 AppConfig.class를 구성 정보로 지정했다.
2. 스프링 빈 등록

- 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.
빈 이름
- 빈 이름은 메서드 이름을 사용한다.
- 빈 이름을 직접 부여할 수 있다. @Bean(name ="memberService2")
- 빈 이름은 항상 다른 이름으로 부여해야 한다.
3. 스프링 빈 의존관계 설정 -준비

4. 스프링 빈 의존관계 설정 -완료
![업로드중..]()
- 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입(DI)한다.
- 단순히 자바 코드를 호출하는 것 같지만 차이가 존재한다. 싱글톤 컨테이너에서 설명할 것이다.
스프링 컨테이너를 생성하고, 설정 정보를 참고해 스프링 빈을 등록하고 의존관계도 설정했다.
이제 스프링 컨테이너에서 데이터를 조회해보자
📜Summary
- 스프링 컨테이너의 생성과정은 스프링 컨테이너 생성, 스프링 빈 등록, 스프링 빈 의존관계 설정으로 진행된다.
- 스프링 빈을 등록하는 과정과 의존관계 설정은 따로 이루어진다.