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

[Spring Boot] : 컨테이너에 등록된 빈 조회하기

by 오주현 2022. 1. 5.
반응형
컨테이너에 등록된 빈 조회하기

컨테이너에 등록된 모든 빈 조회하기


@Test
@DisplayName("모든 빈 출력하기")
void findAllBean() {
    String[] beanDefinitionNames = ac.getBeanDefinitionNames();
    for (String beanDefinitionName : beanDefinitionNames) {
        Object bean = ac.getBean(beanDefinitionName);
        System.out.println("name = " + beanDefinitionName + "Object = " + bean);

    }
}
  • 스프링 내부에서 사용하는 빈과 내가 직접 등록한 빈 모두 포함이 된다.
  • 구분하기 위해서는 Role()를 사용한다.
@Test
@DisplayName("애플리케이션 빈 출력하기")
void findApplicationBean() {
    String[] beanDefinitionNames = ac.getBeanDefinitionNames();
    for (String beanDefinitionName : beanDefinitionNames) {
        BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName);

        if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { 
//내가 애플리케이션을 주로 개발하기 위해 등록한 빈, 외부 라이브러리 등만 출력
            Object bean = ac.getBean(beanDefinitionName);
        System.out.println("name = " + beanDefinitionName + "Object = " + bean);
        }

    }
}
  • Role ROLE_APPLICATION : 직접 등록한 애플리케이션 빈
  • Role ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈
  • 지금은 ROLE_APPLICATION을 사용했으므로 직접 등록한 애플리케이션 빈만 조회할 수 있다.

출처 : 스프링 핵심 원리 - 기본편 - 인프런
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
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)

반응형

댓글