작성
·
320
1
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
여기에 질문 내용을 남겨주세요.
https://drive.google.com/file/d/1xmVgaw7U85V7WRYzRUU36ayWkFBmjSZ2/view?usp=sharing
CoreApplicationTests 에서 주석 처리 후에도 오류가 발생합니다.
에러 메시지를 읽어보니 같은 이름의 스프링 빈이 두 개 등록되어서 일어난 오류 같은데, 아무리 찾아봐도 어디서 빈이 두 개 등록되었는지 찾을 수 없어 질문 드립니다.
답변 2
4
안녕하세요. yaminma3님
스프링 부트 3.2 이상의 경우 빌드 옵션을 IntelliJ 대신에 Gradle을 선택해야 합니다.
강의 메뉴얼 2. 스프링 핵심 원리 이해1 - 프로젝트 생성 부분을 참고해주세요.
이렇게 설정한 다음에 프로젝트를 다시 시작하고, 기존 테스트는 삭제하시고 새로운 테스트를 시작해주세요.
감사합니다.
주의! 스프링 부트 3.2 부터 Gradle 옵션을 선택하자.
스프링 부트 3.2 부터 앞서 Build and run using에 앞서 설명한 IntelliJ IDEA를 선택하면 몇가지 오류가 발생한다. 따라서 스프링 부트 3.2를 사용한다면 다음과 같이 IntelliJ IDEA가 아니라 Gradle을 선택해야 한다.
* Windows: File -> Settings(Ctrl+Alt+S)
* Mac: IntelliJ IDEA | Preferences(⌘,)
* Preferences -> Build, Execution, Deployment -> Build Tools -> Gradle
* 빨간색 박스의 Build and run using를 Gradle로 선택합니다.
* 빨간색 박스의 Build tests using를 Gradle로 선택합니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
yaminma3님께서 겪고 계신 문제는 스프링 컨테이너에서 동일한 이름의 빈이 두 개 등록되어 발생하는 종류의 문제로 보입니다. 이 경우 스프링이 어떤 빈을 주입해야 할지 혼란스러워하여 NoUniqueBeanDefinitionException
오류를 발생시키게 됩니다.
비슷한 문제에 대해 다른 수강생들께서 남긴 질문과 답변이 있어 공유드립니다. 다음 링크들을 참고하셔서 해결방법을 검토해보실 수 있습니다.
실행시 중복 오류가 발생합니다.
위의 게시물에서는 비슷한 문제로 인해 빈 중복 오류가 발생하는 상황에 대해 다루고 있으며, 빈 이름을 변경하거나 스프링 부트의 설정 옵션을 조정하여 해결하는 방법들이 설명되어 있습니다.
SpringConfig Bean 2개 에러 관련 질문드립니다!
여기에는 @Repository
어노테이션의 자동 빈 등록 메커니즘과 관련하여 중복 빈 문제를 해결하는 방법이 설명되어 있습니다.
오류 관련해서 질문드립니다.
이 게시물은 @Repository
와 @Bean
을 사용하는 방법과 중복 빈 문제에 대한 해결책을 제공합니다. 빈 정의에 있어 불필요한 중복을 제거하는 것이 핵심입니다.
이러한 문제를 해결하기 위해서는 주로 다음과 같은 방법을 고려할 수 있습니다:
- @Primary
를 사용하여 기본 빈을 지정합니다.
- @Qualifier
를 명시적으로 사용하여 원하는 빈을 지정합니다.
- @ComponentScan
의 범위를 조정하여 의도하지 않은 빈 등록을 피합니다.
각각의 해결 방법이 yaminma3님의 상황에 적합하지 않다던가 다른 구체적인 문제가 있다면 추가 정보나 코드를 공유해 주시면 더 나은 답변을 드리도록 노력하겠습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
같은 문제가 있었는데, 말씀해 주신 대로 빌드 설정을 Gradle로 바꾼 후에는 Test가 전부 통과하였습니다.
그런데 왜 IntelliJ로 빌드를 하면 Bean이 두 개가 등록되는 건가요..?
인터넷에 찾아 보니 IntelliJ와 Gradle 빌드 방식의 차이점이 증분빌드냐 아니냐의 차이라고 하는데, 이것과 관련이 있는 건가요?