>  기사  >  Java  >  내 Spring 애플리케이션이 내 UserService Bean을 찾을 수 없는 이유는 무엇입니까?

내 Spring 애플리케이션이 내 UserService Bean을 찾을 수 없는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-02 09:33:31530검색

Why Can't My Spring Application Find My UserService Bean?

문제 해결: '필드에 찾을 수 없는 유형의 Bean이 필요합니다.'

오류 메시지 "Field userService in main. java.rest.UsersController에는 찾을 수 없는 'main.java.service.UserService' 유형의 Bean이 필요합니다."는 Spring 애플리케이션이 'main.java.service.UserService' 유형의 등록된 Bean을 찾을 수 없음을 나타냅니다.

원인:

이 문제는 Spring 컨테이너가 지정된 유형에 대한 Bean 정의를 찾을 수 없을 때 발생합니다. Bean은 일반적으로 @Service와 같은 주석을 사용하여 정의되지만 Spring과 함께 MongoDB를 사용하는 경우 일반적으로 MongoRepository에서 저장소 인터페이스를 확장합니다.

해결책:

두 가지가 가능합니다. 이 문제를 해결하기 위한 솔루션:

솔루션 1: 프로젝트 구조 재구성

UserService 클래스를 Spring 컨테이너에서 검색되는 패키지로 이동합니다. 기본적으로 Spring은 @SpringBootApplication 주석이 선언된 기본 패키지 아래의 모든 패키지를 검색합니다. 메인 클래스가 com.example.something에 있는 경우 UserService를 com.example.something.service로 이동합니다.

해결책 2: @ComponentScan 사용

다음을 추가합니다. @SpringBootApplication 주석이 선언된 메인 클래스에 대한 행:

<code class="java">@SpringBootApplication(scanBasePackages = {
    "com.example.something", // Your default scanned package
    "main.java.service"      // The package containing the UserService class
})</code>

이것은 빈 스캔 프로세스에 "main.java.service" 패키지를 명시적으로 포함합니다.

위 내용은 내 Spring 애플리케이션이 내 UserService Bean을 찾을 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.