// JUNIT 테스트
class ApplicationContextInfoTest {
    AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
    @Test
    @DisplayName("모든 빈 출력하기") 
    void findAllBean() { 
        String[] beanDefinitionNames = ac.getBeanDefinitionNames(); 
        for (String beanDefinitionName : beanDefinitionNames) { 
            Object bean = ac.getBean(beanDefinitionName); 
            System.out.println("name=" + beanDefinitionName + " object=" + bean); 
        } 
    }
    
    
    @Test
    @DisplayName("애플리케이션 빈 출력하기") 
    void findApplicationBean() { 
        String[] beanDefinitionNames = ac.getBeanDefinitionNames(); 
        for (String beanDefinitionName : beanDefinitionNames) { 
            BeanDefinition beanDefinition = ac.getBeanDefinition(beanDefinitionName);
            
            // Bean의 종류에 따라 해당하는 것만 찾을 수 있음
            // Role ROLE_APPLICATION : 직접 등록한 애플리케이션 빈 
            // Role ROLE_INFRASTRUCTURE : 스프링이 내부에서 사용하는 빈 
            if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) { 
                Object bean = ac.getBean(beanDefinitionName); 
                System.out.println("name=" + beanDefinitionName + " object=" + bean); 
            } 
        } 
    }
}

컨테이너에 등록된 스프링 빈을 조회할 수 있다.

 

 

 

 

 

출처 : 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

+ Recent posts