嘗試將MongoDB 與Spring RESTful API 整合時,使用者可能會遇到錯誤「'欄位需要無法找到的類型的bean。'」此錯誤表示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中文網其他相關文章!