-
스프링 컨테이너와 스프링 빈Spring/스프링 핵심 원리 - 기본편 2022. 8. 4. 01:40
[인프런] 스프링 핵심 원리 - 기본편
< 스프링 빈 의존관계 설정 >
스프링 빈 조회
스프링 빈을 찾는 가장 기본적인 조회 방법
ac.getBean(빈 이름, 타입) ac.getBean(타입)
📎조회 대상 스프링 빈이 없으면 발생하는 예외
NoSuchBeanDefinitionException: No bean named 'xxxxx' available
📎타입으로 조회할 때 같은 타입의 스프링 빈이 두 개 이상 있으면 오류 발생 => 빈 이름 지정하기
ac.getBeanOfType()
↪ 해당 타입의 모든 빈 조회 가능
스프링 빈을 조회할 때 상속관계
- 부모 타입으로 조회하면, 자식 타입도 모두 함께 조회됨 => Object로 조회하면 모든 스프링 빈 조회함 ⭐
📍BeanFactory와 ApplicationContext
📎BeanFactory는 스프링 컨테이너의 최상위 인터페이스
📎ApplicationContext는 BeanFactory의 기능을 상속받고 편리한 부가 기능을 추가 제공함
📎보통 ApplicationContext를 사용하고 BeanFactory와 ApplicationContext를 모두 스프링 컨테이너라 함
ApplicationContext가 제공하는 부가기능
- MessageSource
- EnvironmentCapable
- ApplicationEventPublisher
- ResourceLoader
지금까지는 애노테이션 기반 자바 코드 설정을 사용함
XML 설정 사용 맛보기
- XML을 사용하면 컴파일 없이 빈 설정 정보 변경 가능
- 애노테이션 방법과 구조는 거의 비슷함
📍정리
- 스프링이 다양한 설정 형식을 지원할 수 있는 이유: BeanDefinition 으로 추상화해서 사용하기 때문⭐
- 우리가 보통 @Bean으로 사용하는 건 BeanFactory 방식
'Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
컴포넌트 스캔 (0) 2022.08.05 싱글톤 컨테이너 (0) 2022.08.04 스프링 핵심 원리 이해2 - 객체 지향 원리 적용 (0) 2022.08.03 스프링 핵심 원리 이해1 - 예제 만들기 (0) 2022.08.03 객체 지향 설계와 스프링 (0) 2022.08.02