BeanFactory
-상속→ ApplicationContext
-상속→ AnnotationConfigApplicationContext
괄호 첫번째 : Class 이름 (맨앞 알파뱃은 소문자로 적어야함)
괄호 두번째 : 생성 원하는 클래스 (타입)
ac.getBean("memberService", MemberService.class);
ac.getBeanDefinitionNames();
만약 직접 생성한 Bean 만 조회하고 싶은 경우 if 문으로 필터링 할 수 있다.
if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION)
❗️ Component Scan 으로 등록된 Bean 도 출력됨
@Test
@DisplayName("특정 타입을 모두 조회")
void findAllBeanByType () {
Map<String, MemberRepository> beansOfType = ac.getBeansOfType(MemberRepository.class);
for (String key : beansOfType.keySet()) {
System.out.println("key = " + key + " / value = " + beansOfType.get(key));
}
System.out.println("beansOfType = " + beansOfType);
assertThat(beansOfType.size()).isEqualTo(2);
}