반응형
컨테이너에 등록된 빈 조회하기
컨테이너에 등록된 모든 빈 조회하기
@Test
@DisplayName("모든 빈 출력하기")
void findAllBean() {
String[] beanDefinitionNames = ac.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
Object bean = ac.getBean(beanDefinitionName);
System.out.println("name = " + beanDefinitionName + "Object = " + bean);
}
}
- 스프링 내부에서 사용하는 빈과 내가 직접 등록한 빈 모두 포함이 된다.
- 구분하기 위해서는 Role()를 사용한다.
@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 ROLE_APPLICATION : 직접 등록한 애플리케이션 빈
- Role ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈
- 지금은 ROLE_APPLICATION을 사용했으므로 직접 등록한 애플리케이션 빈만 조회할 수 있다.
출처 : 스프링 핵심 원리 - 기본편 - 인프런
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard
(강의 내용을 참고로 개인 공부하여 올린 내용입니다.)
반응형
'Framework & Library > Spring Boot' 카테고리의 다른 글
[Spring Boot] : Bean Definition (0) | 2022.01.06 |
---|---|
[Spring Boot] : Spring Bean 조회 기본 (0) | 2022.01.05 |
[Spring Boot] : 라이브러리, DI컨테이너, 스프링 (0) | 2022.01.04 |
[Spring Boot] : 제어의 역전 (0) | 2022.01.04 |
[Spring Boot] : DIP 코드를 리팩터링하여 OCP도 만족하게 하기 (0) | 2022.01.04 |
댓글