public class ApplicationContextInfoTest {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
@Test
@DisplayName("모든 빈 출력")
public void findAllBean(){
String[] beanDefinitionNames = ac.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
Object bean = ac.getBean(beanDefinitionName);
System.out.println("bean = " + bean);
}
}
}
ac.getBeanDefinitionNames();
모든 빈 이름들 가져옴.
그 다음 오브젝트, bean으로 뭐가 올지 모르니 얻은 이름들로 getBean으로 찾아서 Object로 받고 출력
@Test
@DisplayName("모든 빈 출력")
public 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("bean = " + bean);
}
}
}
내가 직접 넣은 bean만 출력
BeanDefinition Bean에 대한 정보를 가지고 있는 그런거 인 듯?
BeanDefinition.ROLE_APPLICATION 직접 등록한 빈
BeanDefinition.ROLE_INFRASTRUCTURE 스프링 내부에서 사용하는 빈
'스프링 > 1. 스프링 핵심 원리' 카테고리의 다른 글
22강. 빈 조회 시 동일한 타입이 둘 이상일 경우 (0) | 2023.07.17 |
---|---|
21강. 빈 조회 (0) | 2023.07.17 |
19강. 스프링 컨테이너 생성 (0) | 2023.07.16 |
18강. 스프링으로 변환 (0) | 2023.07.16 |
17강. IoC, DI, 컨테이너 (0) | 2023.07.16 |