首頁 >Java >java教程 >為什麼我的 Spring 應用程式找不到我的 UserService Bean?

為什麼我的 Spring 應用程式找不到我的 UserService Bean?

DDD
DDD原創
2024-11-02 09:33:31613瀏覽

Why Can't My Spring Application Find My UserService Bean?

解決問題:「欄位需要無法找到類型的Bean」

錯誤訊息「Field userService in main. java.rest.UsersController required a bean of type 'main.java.service.UserService' that Could not be find,”表示Spring 應用程式找不到類型為'main.java.service.UserService' 的已註冊bean。

原因:

當 Spring 容器無法找到指定類型的 bean 定義時,就會出現此問題。 Bean 通常使用 @Service 之類的註解來定義,但是當將 MongoDB 與 Spring 結合使用時,您通常會從 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>

這將在bean掃描過程中明確包含「main.java.service」套件。

以上是為什麼我的 Spring 應用程式找不到我的 UserService Bean?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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