web study/Spring
Spring bean 조회하는 여러가지 방법
65살까지 코딩
2022. 1. 19. 14:57
728x90
반응형
컨테이너에 등록된 모든 빈을 조회하는 방법
// 구성을 설정해주는 파일을 AppConfig에서 해주는다고 가정
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
// 일단 복습 차원에서 간단히 적겠습니다.
// 모든 빈의 이름을 가져오기
ac.getBeanDefinitionNames(); -> 컨테이너에 등록된 모든 빈의 이름을 String 배열형태로 꺼냄
//꺼낸 것들중 하나의 이름을 name이라고 가정
//빈의 정보가 나옴
ac.getBean(name)
컨테이너에 등록된 어플리케이션 빈만 조회하는 방법
// 구성을 설정해주는 파일을 AppConfig에서 해주는다고 가정
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
// 일단 복습 차원에서 간단히 적겠습니다.
// 모든 빈의 이름을 가져오기
ac.getBeanDefinitionNames(); -> 컨테이너에 등록된 모든 빈의 이름을 String 배열형태로 꺼냄
//꺼낸 것들중 하나의 이름을 name이라고 가정
//빈의 구체적인 정보
ac.getBeanDefinition(name)
//어플리케이션 역할을 하고 있다면
if(ac.getBeanDefinition(name).getRole = BeanDefinition.ROLE_APPLICATION)
//빈의 정보가 나옴
ac.getBean(name)
컨테이너에 등록된 빈 타입으로 찾기
// 구성을 설정해주는 파일을 AppConfig에서 해주는다고 가정
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
//Service라는 객체가 컨테이너에 등록되어 있다고 가정
ac.getBean(Service.class)
//중복 시 오류 남
//같은 타입의 여러개를 찾고 싶으면
ac.getBeansOfType(Service.class)로 찾으면 됨 map형태로 리턴됨
컨테이너에 등록된 빈 이름으로 찾기
// 구성을 설정해주는 파일을 AppConfig에서 해주는다고 가정
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
//Service라는 객체가 service라는 이름으로 저장되어 있다고 가정
ac.getBean("service",Service.class)
728x90
반응형