스프링 컨테이너와 스프링 빈
인프런 스프링 핵심 원리 - 기본편 수강 중
스프링 컨테이너
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
ApplicationContext가 스프링 컨테이너이자 인터페이스- xml 기반의 스프링 컨테이너로 만들 수도 있지만 요즘은 잘 사용하지 않음
- 스프링 컨테이너는
BeanFactory와ApplicationContext로 구분해서 말하는데BeanFactory를 직접 사용하는 경우는 거의 없기 떄문에 일반적으로ApplicationContext를 스프링 컨테이너라 한다.
스프링 컨테이너 생성 과정

스프링 컨테이너 생성
new AnnotationConfigApplicationContext(AppConfig.class):AppConfig.class의 정보 전달- 스프링 컨테이너 생성
- 스프링 컨테이너 안 스프링 빈 저장소 생성
- key: 빈 이름
- value: 빈 객체
- 스구성 정보 활용
AppConfig같은 구성 정보가 전달 되어야 함- 구성 정보를 보고 객체 등 생성
스프링 빈 등록

AppConfig설정 정보를 확인해서 애너테이션@Bean이 붙어 있는 메서드 호출- 해당하는 메서드를 호출해서 빈 객체로 등록
- 빈 이름(Key): 메서드 이름
- 빈 객체(Value): 메서드가 호출되고 리턴된 객체
- 빈 이름을 직접 부여할 수도 있음
ex)@Bean(name="memberService2") - 빈 이름을 같은 이름으로 부여하면 다른 빈이 무시되거나 기존 빈을 덮어버리기 때문에 빈 이름은 항상 다른 이름을 부여해야한다
스프링 빈 의존 관계 설정
스프링 빈 생성
스프링 빈에 의존 관계 대입 (DI)
[참조] 인프런 스프링 핵심 원리 - 기본편 - 링크
끝!