공부 흔적남기기

Spring bean 조회하는 여러가지 방법 본문

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
반응형