Container
스프링 컨테이너 생성 과정
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext 를 스프링 컨테이너라고 한다.
- ApplicationContext 는 인터페이스이다.
- 스프링 컨테이너는 XML 을 기반으로 만들 수 있고, 어노테이션 기반의 자바 설정 클래스로 만들 수 있다.
- ApplicationContext 인터페이스의 구현체
new AnnotationConfigApplicationContext(AppConfig.class);
정확히는 스프링 컨테이너를
BeanFactory, ApplicationContext 로 구분해서 이야기한다.
일반적으로 ApllicationContext 를 스프링 컨테이너라 한다.
1. 스프링 컨테이너 생성
new AnnotationConfigApplicationContext(AppConfig.class)
- 스프링 컨테이너를 생성할 때는 구성 정보를 지정
- AppConfig.class 를 구성 정보로 지정
2. 스프링 빈 등록
- 스프링 컨테이너는 파라미터로 넘어온 설정 클래스 정보 (AppConfig.class) 를 사용해서 스프링 빈 등록
빈 이름
- 빈 이름은 메서드 이름을 사용
- 직접 부여 가능
@Bean(name=”memberServiceA”)
⚠️ **빈 이름은 항상 다른 이름을 부여**
같은 이름을 부여하면 다른 빈이 무시되거나
기존 빈을 덮어버리거나 설정에 따라 오류 발생
3. 스프링 빈 의존 관계 설정
- 스프링 컨테이너는 설정 정보를 참고해서 의존 관계를 주입 (DI)
스프링은 빈을 생성하고, 의존 관계를 주입하는 단계가 나누어져있다.
자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존 관계 주입도 한번에 처리된다.