-
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 클래스인데 빈으로 같이 등록되었다.
어떤 빈이 있는지 궁금할 때 사용하면 유용할 것 같다.