본문 바로가기
Framework & Library/Spring Boot

[Spring Boot] : Spring Bean 조회 기본

by 오주현 2022. 1. 5.
반응형
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
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)

반응형

댓글