본문 바로가기

SpringBoot

10월17일 SpringBoot 등록된 Bean 조회하기1

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);

그때 객체로 생성해서 가져옵니다,.

}

}

}