스프링 컨테이너에서 실제 스프링 빈들이 잘 등록 되었는지 확인해보자.
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 |