컨테이너에 등록된 모든 빈 조회
컨테이너에 실제 스프링 빈이 잘 등록되었는지 확인해보자.
public 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);
}
}
}

=> ROLE_APPLICATION: 일반적으로 사용자가 정의한 빈
ROLE_INFRASTRUCTURE: 스프링 내부에서 사용하는 빈
* 인프런 '스프링 핵심 원리 -기본편' 강의를 참고하여 작성했습니다.
'웹 개발 > Spring' 카테고리의 다른 글
[Spring 기본] 스프링 빈 조회 (0) | 2024.09.03 |
---|---|
[Spring 기본] 스프링 컨테이너 생성 (0) | 2024.08.20 |
[Spring 기본] 스프링으로 전환하기 (0) | 2024.08.20 |
[Spring 기본] IoC, DI, 컨테이너 (0) | 2024.08.13 |
[Spring 기본] 좋은 객체 지향 설계의 5가지 원칙의 적용 (0) | 2024.08.13 |