首頁 >Java >java教程 >為什麼我在使用 MongoDB 的 Spring RESTful API 中收到「欄位需要一個無法找到的類型的 bean」錯誤?

為什麼我在使用 MongoDB 的 Spring RESTful API 中收到「欄位需要一個無法找到的類型的 bean」錯誤?

Susan Sarandon
Susan Sarandon原創
2024-11-01 12:49:30624瀏覽

Why am I getting the

使用MongoDB 的Spring RESTful API 中出現「欄位需要找不到類型的bean」錯誤

嘗試將MongoDB 與Spring RESTful API 整合時,使用者可能會遇到錯誤「'Field required a bean of type that Could not be find.'」此錯誤表明Spring 應用程式無法找到必需的bean,在本例中, UserService bean。

該錯誤是由 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 中收到「欄位需要一個無法找到的類型的 bean」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn