반응형
Spring Bean 조회 기본
- 이름으로 조회가 가능하다.
@Test
@DisplayName("구체 타입으로 조회")
void findBeanByName2() {
MemberService memberService = ac.getBean("memberService", MemberServiceImpl.class);//Imp로 구체적으로 볼 수도 있는데 좋지 않다.
assertThat(memberService).isInstanceOf(MemberServiceImpl.class);
}
- 인터페이스가 아니라 구체 타입으로도 조회가 가능하다.
- 추상화에 의존해야 하므로 이것은 좋은 코드가 아니나 사용해야 할 때가 있을 수 있다.
@Test
@DisplayName("이름 없이 타입으로만 조회")
void findBeanByType() {
MemberService memberService = ac.getBean(MemberService.class);
assertThat(memberService).isInstanceOf(MemberServiceImpl.class);
}
- 이름 없이 타입으로만 조회가 가능하다.
@Test
@DisplayName("빈 이름으로 조회 X")
void findBeanByNameX() {
// MemberService xxxxx = ac.getBean("xxxx", MemberService.class);
assertThrows(NoSuchBeanDefinitionException.class,
() -> ac.getBean("xxxxx", MemberService.class));
}
- 실패 코드도 중요하다.
- 람다식을 통해 NoSuchBeanDefinitionException 오류가 떴을 때 테스트가 성공하도록 한다.
출처 : 스프링 핵심 원리 - 기본편 - 인프런
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : 웹 애플리케이션 문제 (0) | 2022.01.06 |
---|---|
[Spring Boot] : Bean Definition (0) | 2022.01.06 |
[Spring Boot] : 컨테이너에 등록된 빈 조회하기 (0) | 2022.01.05 |
[Spring Boot] : 라이브러리, DI컨테이너, 스프링 (0) | 2022.01.04 |
[Spring Boot] : 제어의 역전 (0) | 2022.01.04 |
댓글