Spring/Spring Core

Container에 등록된 Bean 조회

민철킹 2021. 3. 8. 21:03

스프링 컨테이너에서 실제 스프링 빈들이 잘 등록 되었는지 확인해보자.

 

Junit 테스트 코드로 작성

1. 모든 빈 출력

  • Bean명과 담겨있는 객체들을 출력하였다.
  • 위의 org.springFramework ~~ 들은 스프링이 내부적으로 스프링 자체를 확장하기 위해 쓰는 Bean들이다.
  • ac.getBeanDefinitionNames() : 스프링에 등록된 모든 빈 이름을 조회
  • ac.getBean() : 빈 이름으로 빈 객체(인스턴스)를 조회

 

2. 애플리케이션 빈 출력

  • getBeanDefinition : Bean에 대한 메타데이터 정보
  • getRole() : Bean의 역할을 가져오는 메소드
    • getRole이 ROLE_APPLICATION이라는 뜻은 스프링이 내부적으로 등록한 Bean이 아니라 우리가 Application을 개발하기 위해 등록한 Bean, 외부 라이브러리
  • 따라서 우리가 등록한 Bean들만 출력되는 것을 확인할 수 있다.
  • memberRepository에는 MemoryMemberRepository, memberService에는 MemberServiceImpl이 들어가있다.
  • Role : ROLE_APPLICATION: 직접 등록한 애플리케이션 빈
  • Role : ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈
  • ROLE_INFRASTRUCTURE로 위의 코드를 바꾸면 내부에서 사용하는 빈만 출력된다.

 

 

반응형

'Spring > Spring Core' 카테고리의 다른 글

BeanFactory와 ApplicationContext  (0) 2021.03.09
Spring Bean 조회  (0) 2021.03.09
Spring Container  (0) 2021.03.08
Spring으로 변환 (자~~ 드가자~)  (0) 2021.03.05
IoC / DI / Container  (0) 2021.03.05