Spring Bean Container에 등록된 빈을 조회해 보자
우선 스프링컨테이너에 bean을 등록시키기 위해 AppConfig를 생성한다.
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
이렇게 스프링 컨테이너를 생성하면 AppConfig에 있는 @Bean들을 모두 등록한다,
void findAllBean(){
String[] beanDefinitionNames = ac.getDefinitionNames();
위 코드는 ac 즉 스프링 컨테이너에 등록된 모든 bean객체를 불러오는 함수이다.
for(String beanDefinitionName = beanDefinitionNames){
Object bean = ac.getBean(beanDefinitionName);
반복문을 사용해 객체를 모두 불러온 beanDefinitionNames에서 하나씩 요소를 꺼내 Objeact Bean요소에 넣어준다,
}
}
어플리케이션 Bean만 출력하기
ApplicationBean은 사용자가 직접 등록한 Bean이고
스프링이 동작하기위해 스스로 만들어 가지고 있는 bean은 INFRASTRUCTURE 로 구분된다
void findApplicationBean(){
String[] beanDefinitionNames = ac.getBeanDefinitionNames()
일단 등록된 bean을 모두 가져옵니다.
for(String beanDefinitionName : beanDefinitionNames){
그후 위와 같이 하나씩 가져옵니다,
BeanDefinition beanDefinition = ac.getBeanDefinition(beanDetinitionName)
그리고 스프링 컨테이너에서 반복문이 돌고있는 각bean의 이름의 bean객체를 따로 가져옵니다.
if(beanDefinition.getRole() == BeanDefinition.RoleApplication){
바로 위에서 가져온 bean이 Application에 대항한다면
Object bean = ac.getBean(beanDefinitionName);
그때 객체로 생성해서 가져옵니다,.
}
}
}
'SpringBoot' 카테고리의 다른 글
10월 19일 SpringBoot 스프링으로 Bean조회 3 (0) | 2022.10.20 |
---|---|
10월 18일 SpringBoot 스프링으로 Bean조회2 (0) | 2022.10.19 |
10월 16일 SpringBoot DI를 스프링으로 만족하기 (0) | 2022.10.17 |
10월 13일 Spring Boot 자바에서 Bean을 생성 DI를 만족시키기 (0) | 2022.10.14 |
10월 11일 SpringBoot DI컨테이너 / IoC컨테이너 (0) | 2022.10.12 |