작성
·
39
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
package hello.core.beanfind;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class ApplicationContextInfoTest {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext();
@Test
@DisplayName("모든 빈 출력하기")
void findAllBean() {
String[] beanDefinitionNames = ac.getBeanDefinitionNames();
for (String beanDefinitionName : beanDefinitionNames) {
Object bean = ac.getBean(beanDefinitionName);
System.out.println("name=" + beanDefinitionName + " object=" + bean);
}
}
}
ApplicationContext가 refresh되지 않았다라고 뜨는데 아무리 봐도. 작성 코드랑 다른게 없어서 왜 이렇게 되는지 알 수 있을까요??
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다.
ally0204님께서 겪으신 ApplicationContext가 refresh되지 않았다
는 오류는 보통 스프링 애플리케이션 컨텍스트가 초기화되지 않았을 때 발생합니다. 다음은 해당 문제를 해결하기 위한 몇 가지 팁 및 유사한 문제에 대한 기존 답변입니다.
AnnotationConfigApplicationContext
를 초기화하면서 아무 인자도 전달하지 않았기 때문에 컨텍스트가 비어 있습니다. 이를 해결하려면 ApplicationContextInfoTest
클래스에 설정 클래스를 인자로 전달하여 컨텍스트를 초기화해야 합니다. 예시 코드는 다음과 같습니다: AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
위 코드에서 AppConfig.class
는 스프링 설정 파일이나 @Configuration
으로 설정된 클래스를 가리킵니다. 이 파일에는 스프링 빈 설정이 포함되어 있어야 합니다.
AppConfig
라는 설정 파일이 프로젝트에 존재하는지 확인하십시오. 설정 파일이 올바르게 존재하고, 필요한 빈이 등록되어 있는지 확인해 주세요.다음은 유사한 질문을 참조할 수 있는 기존 게시물입니다:
이 문제들은 보통 프로젝트에 설정 클래스가 누락되어 있거나, 잘못된 설정으로 인해 발생할 수 있습니다. 위 문제를 해결하기 위해 설정 클래스를 다시 확인하신 후, 올바른 설정이 입력되어 있는지 확인해 보시기 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.