You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
섹션 4. 스프링 컨테이너와 스프링 빈
1. 스프링 컨테이너 생성
ApplicationContext 를 스프링 컨테이너라고 하며 이는 인터페이스이다.
→ AnnotationConfigApplicationContext 는 ApplicationContext 를 구현한 것 중 하나(구현체)
AppConfig.class 로 구성 정보 지정
Bean빈 이름
스프링 빈 의존 관계 설정 - 준비

스프링 빈 의존관계 설정 - 완료
스프링 컨테이너를 생성하고, 구성 정보(AppConfig.class)를 참고해서 스프링 빈을 등록하고, 의존관계도 설정했다.
2. 컨테이너에 등록된 모든 빈 조회
모든 빈 출력하기
애플리케이션 빈 출력하기
3. 스프링 빈 조회 - 기본
4. 스프링 빈 조회 - 동일한 타입이 둘 이상
같은 타입의 빈이 둘 이상일 때 타입으로 조회하면 오류 발생 => 빈 이름을 지정해서 해결 가능
5. 스프링 빈 조회 - 상속 관계
부모 타입으로 조회하면 자식 타입도 함께 조회한다.

모든 자바 객체의 최고 부모인 Object 타입으로 조회하면 모든 스프링 빈을 조회할 수 있다.
6. BeanFactory와 ApplicationContext
BeanFactory
ApplicationContext
7. 다양한 설정 형식 지원 - 자바 코드, XML
스프링 컨테이너는 자바 코드, XML, Groovy 등 다양한 형식의 설정 정보를 받아들일 수 있도록 유연하게 설계되어 있다.

애노테이션 기반 자바 코드 설정 사용
XML 설정 사용
아래와 같이 자바 코드와 XML 코드가 상당히 유사한 것을 볼 수 있다.
8. 스프링 빈 설정 메타 정보 - BeanDefinition
스프링은 BeanDefinition(빈 설정 메타정보)를 통해 다양한 설정 형식을 지원한다.
스프링 컨테이너는 자바 코드인지, XML인지 신경쓰징 않고 메타정보만을 기반으로 스프링 빈을 생성한다.
=> 역할과 구현을 개념적으로 나누었다.
BeanDefinition
정리
All reactions