🌱
Spring Bean 조회하기
October 02, 2023
Spring Bean 조회하기
Spring을 쓰다보면, Bean이 잘 들어갔는지, 싱글톤이 유지되는지 등 다양한 이유로 Bean을 조회할 일이 많다.
매번 검색으로 찾아봤는데, 일반 빈 조회와 어플리케이션 빈 조회 로직이 헷갈려서 자꾸 까먹는다.
그래서 여기에 Bean 조회 방법을 정리해둔다. JUnit Test로 작성되었다.
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);
if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) {
Object bean = ac.getBean(beanDefinitionName);
System.out.println("name = " + beanDefinitionName + " object = " + bean);
}
}
}
}