♪ 학습 내용
동일 타입과 상속 관계에 따른 스프링 빈 조회
BeanFactory , Application Context
* 동일 타입 빈 조회
둘 이상의 동일 타입 스프링 빈이 있을 때 타입으로 조회 시 오류 발생
해결하기 위해 빈 이름을 지정한다 (너무도 당연한 얘기일지도..)
빈 이름은 따로 지정하지 않는 한 @Bean 메서드의 이름이다.
* 상속 관계의 스프링 빈 조회
부모 타입을 조회 --> 자식 타입도 조회
static import를 사용하여 앞에 Assertions 생략
assertThrowos( 예외, 로직);
== 로직을 실행했을 때 해당 하는 예외가 터질 경우 통과이다
위 사진에서 통과 했다는 것은 DiscountPolicy를 타입으로 조회하였을 때 둘 이상의 스프링 빈이 조회됐다는 것을 의미한다
NoUniqueBeanDefinitionException : 스프링 빈이 하나가 아닌 두개 이상 있을 경우 발생하는 예외
만약 모든 자바 객체의 부모 타입인 Object를 타입으로 조회한다면..?
모든 스프링 빈이 조회될 것이다.
앞 @Configuration 설정 정보에서 등록한 빈 뿐만 아니라 스프링 내부에서 사용하는 빈까지 다 조회.
* BeanFactory와 Application Context
BeanFactory
- 스프링 컨테이너의 최상위 인터페이스
- 스프링 빈 관리, 조회 ( getBean 제공 )
Application Context
- BeanFactory를 상속받는다
-빈 관리(BeanFactory 상속) 뿐만 아니라 수많은 부가기능
우리가 말하는 스프링 컨테이너는 BeanFactory 또는 Application Context
ApplicationContext ac = new AnnotationConfigApplicationContext(설정정보);
//new 연산자 뒤로는 ApplicationContext 인터페이스를 구현하는 구현체이다
여태 그래왔듯이 그냥 Application Context 사용하면 된다
♪ 다음 학습 내용
애노테이션 기반의 자바 설정 클래스가 아닌, XML을 기반 스프링 컨테이너 생성
'Dev > Spring' 카테고리의 다른 글
[Spring 기본] 싱글톤 컨테이너 (1) (0) | 2022.11.09 |
---|---|
[Spring 기본] 스프링 컨테이너와 빈 (3) (0) | 2022.11.07 |
[Spring 기본] 스프링 컨테이너와 빈 (1) (0) | 2022.11.05 |
[Spring 기본] 객체d 지향 원리 적용 (4) (0) | 2022.11.01 |
[Spring 기본] 객체 지향 원리 적용 (3) (0) | 2022.11.01 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!