>Java >java지도 시간 >MongoDB를 사용하는 Spring RESTful API에서 \'필드에 찾을 수 없는 유형의 빈이 필요합니다\' 오류가 발생하는 이유는 무엇입니까?

MongoDB를 사용하는 Spring RESTful API에서 \'필드에 찾을 수 없는 유형의 빈이 필요합니다\' 오류가 발생하는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-01 12:49:30622검색

Why am I getting the

MongoDB를 사용하는 Spring RESTful API에서 '필드에 찾을 수 없는 유형의 빈이 필요합니다.' 오류

MongoDB를 Spring RESTful API와 통합하려고 하면 사용자는 "'필드에 찾을 수 없는 유형의 빈이 필요합니다.'"라는 오류가 발생할 수 있습니다. 이 오류는 Spring 애플리케이션이 필수 빈(이 경우 UserService 빈)을 찾을 수 없음을 나타냅니다.

오류는 Spring이 프로젝트의 구성 요소를 검색하는 방식으로 인해 발생합니다. 기본적으로 Spring은 @SpringBootApplication이라는 주석이 달린 패키지 내의 구성 요소를 검색합니다. 이 경우 UserService에 의존하는 UsersController 클래스는 기본 검색 경로 외부에 있습니다.

이 문제를 해결하려면 두 가지 주요 접근 방식이 있습니다.

접근 1 : 패키지 검색 사용자 정의

@SpringBootApplication(scanBasePackages={...}) 주석을 사용하여 구성 요소를 검색해야 하는 패키지를 수동으로 지정합니다. 이 경우 기본 애플리케이션 클래스에 다음 줄을 추가합니다.

<code class="java">@SpringBootApplication(scanBasePackages={"main.java.service", "main.java.rest"})</code>

이렇게 하면 Spring이 서비스 및 나머지 패키지 모두에서 구성 요소를 검색하도록 지시합니다.

접근 2: 패키지 구조 재구성

또는 모든 관련 구성 요소가 동일한 패키지 내에 있도록 프로젝트의 패키지 구조를 재구성합니다. 이 경우 다음과 같이 프로젝트를 재구성하세요.

src/
├── main/
│   └── java/
|       └── com.example/
|       |   ├── Application.java
|       |   ├── model/
|       |   |   └── User.java
|       |   ├── rest/
|       |   |   ├── IndexController.java
|       |   |   └── UsersController.java
|       |   ├── service/
|       |   |   └── UserService.java
└── resources/
    └── application.properties

이렇게 하면 UserService와 관련된 모든 구성 요소가 동일한 패키지 내에 있는지 확인하고 Spring이 자동으로 이를 스캔합니다.

위 내용은 MongoDB를 사용하는 Spring RESTful API에서 \'필드에 찾을 수 없는 유형의 빈이 필요합니다\' 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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