- 스프링 컨테이너 생성
- ApplicationContext를 스프링 컨테이너라 함
- ApplicationContext는 인터페이스 => 다형성 적용 가능
//스프링 컨테이너
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext를 구현한 것 중의 하나가 AnnotationConfigApplicationContext임.
- 스프링컨테이너는 XML기반으로도, 에노테이션 기반의 자바 설정 클래스로도 만들 수 있음( 요즘엔 에노테이션 위주)
- 스프링 컨테이너를 부를 때, 'BeanFactory', 'ApplicationContext'로 구분해서 말함. 다만, 'BeanFactory'를 직접 사용하는 경우가 거의 없어 대부분 후자를 스프링 컨테이너라고 함.
- AppConfig.class : 스프링컨테이너를 생성할 때 구성 정보를 지정해준 것.
- 주의 !! 빈 이름은 항상 다른 이름을 부여해야 함. 같은 이름을 부여하면 다른 빈이 무시되거나 기존 빈을 덮어버리거나 설정에 따라 오류 발생 !!
- 실무에서는 헷갈리게 개발하면 안된다 ! 무조건 단순하고 명확하게 !!
- 컨테이너에 등록된 모든 빈 조회
* iter 입력 후 Tab : list나 배열이 있을 때 이를 사용하면 for문이 자동으로 완성
- 테스트 결과
- 내가 등록한 것만 조회(스프링 내부에서 사용하는 빈 제외하고 내가 등록한 빈만!)
- 결과
- Role
- ROLE_APPLICATION : 사용자가 정의한 빈
- ROLE_INFRASTRUCTURE : 스프링 내부에서 사용하는
- 스프링 빈 조회-기본
- 가장 간단한 방법 : getbean(빈 이름, 타입) 또는 getbean(타입)
- 빈 이름으로 조회 및 결과검증은 Assertions로 하기
- 타입으로 조회
- 구체적인 타입으로 조회하는 경우
- 빈 이름으로 조회 = > 오류가 나야 성공하도록 코드 짜기