嘗試將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中文網其他相關文章!