解決問題:「欄位需要無法找到類型的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中文網其他相關文章!