문제 해결: '필드에 찾을 수 없는 유형의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!