ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ApplicationContext에 등록된 스프링 빈 모두 출력하기
    Dev/Spring 2020. 11. 27. 00:23

    스프링으로 개발을 하다보면 어떤 객체가 스프링 빈으로 등록됬는지 확인하고 싶을 때가 있다. 

    특히 클래스가 많아질수록 헷갈릴 때가 있는데, 

     

    ApplicationContext.getBeanDefinitionNames() 

     

    를 호출하여 등록된 빈의 이름을 문자열 배열로 받아올 수 있다. 


    package main;
    
    import config.AppCtx;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class MainApplication {
    
        public static void main(String[] args) {
            ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppCtx.class);
    
            // 등록된 bean의 이름을 get
            String[] beanNames = applicationContext.getBeanDefinitionNames();
            
            // bean 이름을 출력
            for(String beanName : beanNames) {
                System.out.println(beanName);
            }
        }
    }
    

     

    실행 결과는 다음과 같다.

    스프링 프레임워크에서 기본적으로 생성하는 빈도 같이 출력되는 것을 알 수 있다.

    appCtx, dataSource, memberdao 는 내가 작성한 빈이다. 

    appCtx는 @Configuration 클래스인데 빈으로 같이 등록되었다.

     

    어떤 빈이 있는지 궁금할 때 사용하면 유용할 것 같다.

    댓글

Designed by Tistory.