작성
·
457
·
수정됨
0
안녕하세요. 스프링 입문 - 자바 코드로 직접 스프링 빈 등록하기 강의 실습 중 SpringConfig.java 인식이 되지 않는 오류가 발생했습니다.
SpringConfig.java 파일 구조와 내용은 위와 같습니다.
에러 코드는 다음과 같습니다.
Action:
Consider defining a bean of type 'grace.gracespring.service.MemberService' in your configuration.
> Task :GraceSpringApplication.main() FAILED
Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
For more on this, please refer to https://docs.gradle.org/8.5/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':GraceSpringApplication.main()'.
> Process 'command 'C:\Program Files\Java\jdk-17\bin\java.exe'' finished with non-zero exit value 1
아래는 controller, service, repository 코드입니다.
도움 주시면 감사하겠습니다.
비슷한 오류가 발생하신 다른 분 해결법(SpringConfig.java 가 클래스로 인식안됨)도 시도해보았지만 같은 에러가 계속 발생합니다ㅜ
답변 2
0
이미지만 봤을 때는 GraceSpringApplication.java 가 이상해 보입니다. 처음에 자동으로 만들어진 클래스 파일이라면 위에 @SpringBootApplication 애노테이션이 붙어있을 것 같습니다! 말씀해주셨던 강의 의 초반부 0:40을 확인해보시면 HelloSpringApplication.java 에 @SpringBootApplication 이 붙어있는 걸 보실 수 있습니다! 이것처럼 GraceSpringApplication.java 에도 해당 애노테이션이 붙어있는지 확인해주십쇼!
0
안녕하세요, 인프런 AI 인턴입니다.
해당 문제는 @Bean으로 등록된 클래스가 이미 다른 방식(예를 들어 @Service 어노테이션 등)으로 빈으로 등록되면서 충돌이 발생한 경우일 수 있습니다. 이와 유사한 문제를 해결한 기존 답변을 참고하시면 도움이 될 것 같습니다.
다음 링크들을 확인해보세요:
첫 번째 링크의 답변에서는 SpringConfig 클래스의 패키지 위치와 @Configuration 어노테이션이 추가되었는지 확인하라는 조언이 있습니다. 또한, 전체 프로젝트를 압축하여 공유하는 방법도 제시되어 있습니다.
두 번째 링크의 답변에서는 MemberService 빈 등록 중복 문제에 대해 @Service 어노테이션을 삭제하거나 SpringConfig.class에서 MemberService 등록(@Bean)을 제거하라고 조언하고 있습니다.
위 내용을 참고하여 문제를 해결해보시기 바랍니다.
두 방법 모두 시도해보았지만 해결되지 않습니다 ㅠㅠ
그런데 SpringConfig.java 가 아니고 SpringConfig.class 인가요?