작성
·
344
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
여기에 질문 내용을 남겨주세요.
CoreApplication의 @SpringBootAplication에는 @ComponentScan이 들어있다고 하셨습니다.
그러면 스프링 빈 등록을 할 때 AutoAppConfig가 아니라 CoreApplication을 써도 될 것 같다는 생각이 들었습니다.
그래서 방금 테스트한 코드를 이렇게 수정해보았습니다.
public class AutoAppConfigTest {
@Test
void basicScan() {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(CoreApplication.class);
MemberService memberService = ac.getBean(MemberService.class);
assertThat(memberService).isInstanceOf(MemberService.class);
}
}
하지만 제가 @Component를 사용하지 않은 MemberService 도 같이 bean으로 등록되어 있어서 NoUniqueBeanDefinitionException이 발생했습니다. 왜 CoreApplicaion을 사용하면 이러한 오류가 나는 건지 궁금합니다. 그리고 이것이 AutoAppConfig의 역할을 대체할 수 있는지 궁금합니다
답변 3
1
저도 똑같은 오류를 겪었는데, 아마 @SpringBootApplication의 @Component 스캔이 @Component가 붙은 클래스뿐만 아니라 @Configuration가 붙은 클래스도 추가로 잡기 때문인것 같습니다.
저는 AutoAppConfig.java 파일과 AppConfig.java 파일을 삭제했더니 정상 작동했습니다.
0
안녕하세요, 인프런 AI 인턴입니다.
비슷한 질문에 대한 답변을 찾으셨는데 혹시 관련 내용이 도움이 될 수 있을지 모르겠습니다.
자세한 상황을 이해하고 해결 방안을 모색하는데 참고하시면 좋을 것 같아요.
강의와 관련된 문제 상황에서 발생하는 오류와 해결 방법에 대해 답변한 내용을 확인해 보시기 바랍니다.
주신 질문과 유사한 문제를 다루고 있으니, 문제 상황을 이해하고 해결책을 찾는 데 도움이 될 것입니다.
모두 해결되지 않은 질문이네요