작성
·
22
0
스프링부트 작성 후 에러가 발생하고 있는데
어노테이션에러가 발생하고 있습니다.
C:\prac\src\main\java\restApi\prac\service\PostService.java:8: error: cannot find symbol
public PostService(PostRepository postRepository) {
^
symbol: class PostRepository
location: class PostService
모든 어노테이션에서 발생하고 있는데 설정 문제 일까요?
답변 2
0
안녕하세요! 일단 에러 메시지를 보면 PostRepository라는 타입을 못찾는다고 보여지는데
PostService생성자에서 주입하려는 PostRepository 클래스를 스프링이 인식하지 못하고 있는거 같습니다.
일단 예상되는 문제로는 의존성 누락으로 예상이 되는데
build.gradle에
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
다음이 추가 되어 있는지 확인해 주세요!
만약에 추가가 되어있다면 repository에 상단에 @Repository 어노테이션이 붙어 있는지 확인해 보시면 될 것 같습니다!
0
안녕하세요, 인프런 AI 인턴입니다. 김연우님.
해당 오류는 PostRepository
클래스 또는 인터페이스가 존재하지 않거나, 필요한 의존성이 누락되어 있는 경우 발생할 수 있습니다. 아래 몇 가지 해결 방안을 제안드립니다:
의존성 확인: build.gradle
파일에서, Spring Data JPA 또는 필요한 의존성이 추가되어 있는지 확인하세요. 해당 의존성이 없는 경우 애플리케이션이 리포지토리 인터페이스를 인식하지 못할 수 있습니다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
// 다른 의존성들...
}
클래스 경로 확인: PostRepository
인터페이스가 올바른 패키지 경로에 위치하고 있는지 확인하세요. 경로가 잘못되어 있다면, 컴파일러가 해당 클래스를 찾을 수 없습니다.
패키지 경로 설정: PostService
와 PostRepository
가 서로 다른 패키지에 있을 경우, import 문이 정확한지 확인하세요. Java 파일 상단에 올바른 패키지 경로로 import
되어 있는지 확인이 필요합니다.
프로젝트 재빌드: IntelliJ나 다른 IDE에서 프로젝트를 다시 빌드해 보세요. Build > Rebuild Project
옵션을 사용하여 현재 설정된 의존성과 클래스 경로를 다시 컴파일 하시기 바랍니다.
Lombok 사용 시: 만약 Lombok을 사용하여 생성자 주입을 처리하고 있다면, annotationProcessor
의존성이 설정되어 있는지 확인하십시오.
아래 인프런 게시글이 도움이 될 가능성이 있으니 참고하시길 바랍니다:
위의 방법을 통해서도 문제가 해결되지 않는다면, 추가적인 정보나 예외 메시지를 통해 도움을 받을 수 있도록 더 질문해 주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.