인프런 커뮤니티 질문&답변

김아영님의 프로필 이미지
김아영

작성한 질문수

스프링 핵심 원리 - 기본편

컨테이너에 등록된 모든 빈 조회

질문 드립니다.

작성

·

278

1

안녕하세요. 강의를 잘 듣고 있는 학생입니다.

아래 코드에서 getBeanDefinition 부분이 계속 에러로 표시되는데요. 함수자동완성에도 getBeanDefinitionNames는 나오는데 getBeanDefinition 은 안나오더라고요.

스프링 프로젝트 생성할 때도 강의 따라 했는데...버전에 문제가 있을 수 있나요?

@Test
@DisplayName("애플리케이션 빈 출력하기")
void findApplicationBean() {
String[] beanDefinitionNames = ac.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
BeanDefinition beanDefinition =
ac.getBeanDefinition(beanDefinitionName); //Role ROLE_APPLICATION: 직접 등록한 애플리케이션 빈
//Role ROLE_INFRASTRUCTURE: 스프링이 내부에서 사용하는 빈
if (beanDefinition.getRole() == BeanDefinition.ROLE_APPLICATION) {
Object bean = ac.getBean(beanDefinitionName);
System.out.println("name=" + beanDefinitionName + " object=" +
bean);
}
}
}

답변 2

3

김아영님의 프로필 이미지
김아영
질문자

네^^ 다른 질문자님의 질문이랑 관련된 내용이었네요. 감사합니다~

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 아영님

ac를 선언한 곳이 다음과 같이 선언되어 있는지 확인해주세요.

AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);

감사합니다.

김아영님의 프로필 이미지
김아영

작성한 질문수

질문하기