<목차>
- 스프링 컨테이너 생성
- 컨테이너에 등록된 모든 빈 조회
- 스프링 빈 조회 - 기본
- 스프링 빈 조회 - 동일한 타입이 둘 이상
- 스프링 빈 조회 - 상속 관계
- BeanFactory와 ApplicationContext
- 다양한 설정 형식 지원 - 자바 코드, XML
- 스프링 빈 설정 메타 정보 - BeanDefinition
1. 스프링 컨테이너 생성
2. 컨테이너에 등록된 모든 빈 조회
유용한 단축키 : iter + tab => 리스트 또는 배열이 있는 상태에서 자동으로 for문을 만들어줌
유용한 단축키 : soutv => 변수 출력
유용한 단축키 : soutm => 메서드 출력
모든 빈 출력하기 ; findAllBean()
(그림 有 ; 4-1)
메소드 이름대로, 스프링 컨테이너에 등록된 '모든' 빈을 조회하기 위한 메소드
(내가 직접 등록한 빈 외에도, 스프링 내부적인 동작을 위해 무조건 생성되는 빈들조차 같이 조회됨)
- ac.getBeanDefinitionNames() => 스프링에 등록된 모든 빈 이름을 조회한다
- ac.getBean() => 빈 이름으로 빈 객체(인스턴스)를 조회한다
Role에 따른 빈 출력하기 ; findApplicationBean(), findInfrastructureBean()
빈의 역할에 따라 빈을 조회하기 위한 메소드
- BeanDefinition => Bean 각각에 대한 메타데이터
- beanDefinition.getRole() => ROLE_APPLICATION & ROLE_INFRASTRUCTURE
i) 애플리케이션 빈 출력하기 ; findApplicationBean()
(그림 有 ; 4-2)
'application 개발'을 위한 bean들만 조회하기 위한 메소드
- BeanDefinition.ROLE_APPLICATION => application 개발을 위한 bean들
ii) 스프링 내부동작 빈 출력하기 ; findInfrastructureBean()
(그림 有 ; 4-3)
'스프링 내부적인 동작'을 위한 bean들만 조회하기 위한 메소드
- BeanDefinition.ROLE_INFRASTRUCTURE => 스프링 내부적인 동작을 위한 bean들
3. 스프링 빈 조회 - 기본
스프링 컨테이너에서 스프링 빈을 찾는 가장 기본적인 조회 방법
-
ac.getBean(빈이름, 타입)
-
ac.getBean(타입)
-
조회 대상 스프링 빈이 없으면 예외 발생
NoSuchBeanDefinitionException: No bean named 'xxxxx' available
(그림 有 ; 4-4)
(그림 有 ; 4-5)
유용한 단축키 : ctrl + shift + f10 => 해당 메소드를 실행함
4. 스프링 빈 조회 - 동일한 타입이 둘 이상
5. 스프링 빈 조회 - 상속 관계
6. BeanFactory와 ApplicationContext
7. 다양한 설정 형식 지원 - 자바 코드, XML
8. 스프링 빈 설정 메타 정보 - BeanDefinition